ทำการเปลี่ยนแปลงในอาร์เรย์

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

เนื้อหาของอาร์เรย์มักจะต้องมีการเปลี่ยนแปลง เช่นเมื่อจำเป็นต้องลบรายการจากสินค้าคงคลังของผู้เล่น Luau มี ฟังก์ชันในตัว สำหรับการใช้งานร่วมกับตารางเพื่อทำให้สิ่งนี้ง่ายขึ้น

บทความนี้จะอธิบายฟังก์ชันที่สร้างไว้ล่วงหน้าสำหรับตาราง เช่นการเพิ่มและลบ ในขณะที่อธิบายวิธีการค้นหาค่า

เพื่อใช้ทักษะเหล่านี้ คุณจะสร้างสคริปต์ที่ช่วยจัดการสินค้าคงคลังของผู้เล่น

เพิ่มค่าในอาร์เรย์

เพื่อเพิ่มค่ามูลค่าใหม่ในอาร์เรย์ ให้ใช้ table.insert(array, valueToInsert) พารามิเตอร์ที่สองสามารถเป็นค่าต่างๆ เช่น สตริง ตัวเลข หรือวัตถุทั้งหมด เช่น Player หรือ IntValue

เพื่อฝึกฝน คุณจะสร้างสคริปต์ที่จัดเก็บรายการของผู้เล่นในตาราง จากนั้นเพิ่มเข้าไป เนื่องจากตัวอย่างนี้เป็นเพียงสคริปต์ จึงสามารถใช้กับไฟล์หรือโปรเจ็กต์ใดก็ได้ การทดสอบโค้ดจะทำโดยใช้หน้าต่าง Output

  1. สร้างอาร์เรย์ที่ว่างเปล่าชื่อ playerItems


    playerItems = {}
  2. เพิ่มรายการสินค้าคงคลังในอาร์เรย์โดยพิมพ์ table.insert() ในวงเล็บ ให้พิมพ์ playerItems ตารางที่จะเพิ่มเข้าไป ตามด้วยสตริงสำหรับแต่ละรายการ เพิ่มค่าที่อย่างน้อยสามค่า


    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping Bag")
    print(playerItems)
  3. รันโปรเจ็กต์ ใน Output ให้ขยายสามจุด ... เพื่อดูตารางที่พิมพ์

ลบค่าออกจากอาร์เรย์

เพื่อทำการลบค่า เช่น ถ้าผู้เล่นใช้รายการหรือมีใครบางคนในรายการผู้เล่นที่ใช้งานได้ออกจากประสบการณ์ ให้ใช้ table.remove() ขึ้นอยู่กับพารามิเตอร์ที่ให้ ฟังก์ชันนี้สามารถลบค่าล่าสุดในตาราง หรือที่ตำแหน่งเฉพาะ

ลบค่าล่าสุด

บางครั้งสคริปต์ต้องการลบรายการเฉพาะ สำหรับตัวอย่างการลบรายการแรกในสินค้าคงคลังของผู้เล่น หรือการเลือกผู้เล่นแรกในรายการ เพื่อลบค่าล่าสุดในอาร์เรย์ ให้ใช้ table.remove(arrayName) ในกรณีนี้พารามิเตอร์ที่ต้องการเพียงแค่ตารางเอง

  1. ใช้อาร์เรย์ของรายการจากตัวอย่างก่อนหน้านี้ จากนั้นเพื่อทำการลบค่าล่าสุดจากตาราง ในกรณีนี้คือ "Sleeping Bag" ให้พิมพ์ table.remove(playerItems)


    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping bag")
    table.remove(playerItems)
    print(playerItems)
  2. รันโปรเจ็กต์ ในหน้าต่าง Output ค่าล่าสุด "Sleeping Bag" จะไม่ถูกพิมพ์

ลบตามดัชนี

เพื่อทำการลบค่า ณ จุดเฉพาะในอาร์เรย์ ให้ป้อนในพารามิเตอร์ที่สอง ดัชนีที่ต้องการลบ เช่น table.remove(arrayName, 1)

  1. ใช้ตารางเดียวกัน พิมพ์ table.remove() ในพารามิเตอร์ให้บันทึกชื่อตารางและ 1 ค่าที่ต้องการลบ


    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping bag")
    table.remove(playerItems, 1)
  2. รันโปรเจ็กต์ ตรวจสอบว่าค่าที่หนึ่ง "Potion" ถูกลบหรือไม่

ค้นหาค่าในอาร์เรย์

เพื่อค้นหาค่าที่เฉพาะในอาร์เรย์ เช่น ชื่อของผู้เล่นที่ชนะ ใช้ฟังก์ชัน table.find() หรือคุณสามารถเขียนฟังก์ชันค้นหาของคุณเองโดยใช้ for ลูปและ if คำสั่ง

ค้นหาและคืนค่าหนึ่งค่า

เพื่อค้นหาค่าในอาร์เรย์ สร้างฟังก์ชันชื่อ findValue() ที่ทำการตรวจสอบผ่านอาร์เรย์และหยุดเมื่อพบค่าที่ตรงกันเป็นครั้งแรก

เมื่อพบค่า ฟังก์ชันจะใช้คำสำคัญ return เพื่อคืนดัชนีของค่านั้น ด้วยดัชนี คุณสามารถลบออกจากอาร์เรย์ได้

  1. คัดลอกอาร์เรย์ที่ชื่อ playerItems ด้านล่าง


    local playerItems = {
    "Potion",
    "Bread",
    "Bread",
    "Sleeping Bag"
    }
  2. เขียนฟังก์ชันใหม่ชื่อ findValue() ที่มีพารามิเตอร์สองตัว:

    • whichArray - อาร์เรย์ที่ใช้ค้นหา

    • itemName - สตริงเฉพาะที่จะตรวจสอบ


      local function findValue(whichArray, itemName)
      end
  3. ใน findValue() ใช้ลูป for เพื่อตรวจสอบว่าค่าที่อยู่ในอาร์เรย์ตรงกับ itemName หรือไม่ ถ้าค่าตรงกัน ใช้คำสำคัญ return เพื่อส่งกลับค่าที่พบใน currentIndex


    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    return currentIndex
    end
    end
    end
  4. ทดสอบฟังก์ชันค้นหาโดยสร้างตัวแปรชื่อ valueFound และเรียกใช้ findValue() ส่งอาร์เรย์ที่ต้องการค้นหาและค่าที่ควรคัดกรอง รัน โค้ดเพื่อยืนยันว่าผลลัพธ์ที่คาดหวังคือดัชนี 2


    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    --ส่งค่าของ currentIndex กลับ
    return currentIndex
    end
    end
    end
    local valueFound = findValue(playerItems, "Bread")
    print("ค่าคือที่ดัชนี " .. valueFound)

ลบค่า

หากค่าถูกพบโดยการใช้ฟังก์ชันค้นหา มันสามารถถูกลบได้ ตรวจสอบว่าค่าถูกพบด้วยคำสั่ง if

  1. ตรวจสอบว่าค่ามีอยู่ใน valueFound หรือไม่; ถ้าใช่ ให้ลบค่าโดยใช้ table.remove()


    if valueFound then
    table.remove(playerItems, valueFound)
    end
  2. พิมพ์อาร์เรย์โดยใช้โค้ดด้านล่าง


    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("ดัชนี " .. index .. ": " .. itemString)
    end
  3. ทดลองเล่นและตรวจสอบว่าค่า "Bread" ค่าแรกถูกลบออกจากอาร์เรย์ ความพยายามในการลบค่าตัวอื่นโดยการเปลี่ยนพารามิเตอร์ที่สองใน findValue()

    สังเกตว่าเนื่องจากฟังก์ชันนี้ถูกเรียกเพียงครั้งเดียว แค่ค่าก่อนหน้าของ "Bread" เท่านั้นที่จะถูกลบออก ส่วนถัดไปจะพูดถึงวิธีการค้นหาและลบทุกกรณี

ค้นหาและลบทุกค่าที่เฉพาะเจาะจง

ในขณะที่โค้ดก่อนหน้านี้สามารถลบได้เฉพาะการปรากฏครั้งแรกของค่าที่พบ โค้ดสั้นนี้จะค้นหาและลบทุกการเกิดขึ้นจากอาร์เรย์ ตัวอย่างเช่น หากผู้เล่นต้องการขายขนมปังทั้งหมดที่ร้านค้าในเกม

  1. ใช้อาร์เรย์ชื่อ playerItems ที่มีอย่างน้อยสี่ค่าพร้อมชุดของ ค่าที่ซ้ำกัน


    local playerItems = {
    "Potion",
    "Bread",
    "Bread",
    "Sleeping Bag"
    }
  2. เพื่อผ่านอาร์เรย์ ให้สร้างลูป for ที่ทำงาน ย้อนกลับ ผ่าน playerItems โดยเริ่มที่ #playerItems จบที่ 1 และเพิ่มขึ้นด้วย -1


    for index = #playerItems, 1, -1 do
    end
  3. ในลูป ใช้คำสั่ง if เพื่อตรวจสอบว่าค่าภายใน playerItems[index] เท่ากับ "Bread" และถ้าใช่ให้ลบรายการนั้น


    for index = #playerItems, 1, -1 do
    if playerItems[index] == "Bread" then
    table.remove(playerItems, index)
    end
    end
  4. ใช้โค้ดด้านล่างเพื่อเพิ่มลูป for ที่สองเพื่อพิมพ์อาร์เรย์


    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("ดัชนี " .. index .. ": " .. itemString)
    end
  5. รันสคริปต์และตรวจสอบว่าค่าทั้งหมดที่ชื่อ "Bread" ถูกลบออก

สรุป

ค่าสามารถลบหรือลงทุนในอาร์เรย์ แต่ต้องระวังดัชนีที่เลื่อนตามเมื่อทำเช่นนั้น ใช้ลูปเพื่อวนผ่านตารางเพื่อเพื่อลบทุกกรณีของค่า หรือแค่กรณีแรกที่พบ

คำสำคัญ return สามารถใช้เพื่อหยุดลูปและส่งข้อมูลกลับที่จำเป็น

สามารถอ้างอิงได้ถึงเวอร์ชันเสร็จสมบูรณ์ของสคริปต์ด้านล่าง

โปรเจ็กต์ต่อไปนี้รวมทุกสคริปต์ในบทแนะนำนี้ ดาวน์โหลด ที่นี่

โปรดทราบว่าสคริปต์ทั้งหมดอยู่ใน ServerScriptService และ ถูกปิดการใช้งาน เพื่อใช้สคริปต์ ในคุณสมบัติของมัน ให้ยกเลิกการเลือกพื้นที่ Disabled และรัน Studio

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ