เพิ่มและลบรายการ
ใช้ table.insert และ remove
เพิ่มและลบรายการ เป็นบทเรียน Lua Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Lua Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
การขยายลำดับ
รายการจริงอาจเปลี่ยนขนาดขณะที่โปรแกรมทำงาน Lua มี table.insert สำหรับเพิ่มสมาชิกต่อท้ายรายการ
เนื่องจากลำดับเริ่มต้นที่ 1 การเพิ่มสมาชิกต่อจากสองสมาชิกจะทำให้สมาชิกใหม่นั้นอยู่ที่ดัชนี 3
local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])table.insert เพิ่มสมาชิกต่อท้าย
เมื่อเรียกใช้ด้วยอาร์กิวเมนต์สองตัว table.insert(t, value) จะวาง value ไว้ที่ตำแหน่งถัดจากดัชนีสุดท้ายในปัจจุบัน
การเรียกใช้แต่ละครั้งจะเพิ่มสมาชิกในลำดับอีกหนึ่งตัว โดยยังคงให้ดัชนีต่อเนื่องกัน
local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])การแทรกที่ตำแหน่งหนึ่ง
เมื่อใช้สามอาร์กิวเมนต์ table.insert(t, pos, value) จะแทรกค่าที่ดัชนี pos และเลื่อนสมาชิกถัด ๆ ไปขึ้นหนึ่งตำแหน่ง
ในที่นี้ เราใส่ "X" ที่ตำแหน่ง 2 ดังนั้นสมาชิกเดิมที่อยู่ตำแหน่งที่สองจึงเลื่อนไปอยู่ตำแหน่งที่ 3
local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])การแทรกที่ด้านหน้า
หากต้องการเพิ่มสมาชิกไว้ด้านหน้า ให้แทรกที่ตำแหน่ง 1 สมาชิกเดิมทุกตัวจะเลื่อนไปยังดัชนีที่สูงขึ้นหนึ่งตำแหน่ง
วิธีนี้สะดวก แต่จะช้าลงสำหรับรายการขนาดใหญ่ เพราะ Lua ต้องย้ายสมาชิกทั้งหมด
local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])การลบสมาชิกตัวสุดท้าย
table.remove(t) เมื่อส่งอาร์กิวเมนต์หนึ่งตัว จะลบและคืนค่าสมาชิกตัวสุดท้าย
ลำดับจะมีขนาดเล็กลงหนึ่งตัวและยังคงไม่มีช่องว่าง
local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])การลบที่ตำแหน่งหนึ่ง
table.remove(t, pos) จะลบสมาชิกที่ตำแหน่ง pos และเลื่อนสมาชิกถัด ๆ ไปลงเพื่อปิดช่องว่าง
โปรดจำไว้ว่าตำแหน่งเริ่มต้นที่ 1 ดังนั้น pos = 1 จะลบสมาชิกตัวแรก
local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])การลบคืนค่า
table.remove ทั้งสองรูปแบบจะคืนค่าที่ลบออกมา คุณจึงนำค่านั้นไปใช้ได้ทันที
ทำให้ตารางทำหน้าที่เหมือนสแตกได้ โดยเพิ่มข้อมูลด้วย insert และนำข้อมูลออกด้วย remove
local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)คิวอย่างง่าย
เพิ่มสมาชิกที่ท้ายรายการและลบจากด้านหน้า (pos = 1) เพื่อจำลองคิวแบบเข้าก่อนออกก่อน
การลบแต่ละครั้งจะเลื่อนสมาชิกที่เหลือลง ดังนั้นสมาชิกถัดไปจึงรออยู่ที่ดัชนี 1
local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])หลีกเลี่ยงช่องว่างที่สร้างเอง
การกำหนดสมาชิกเป็น nil ด้วย list[2] = nil อาจทำให้เกิดช่องว่างตรงกลางและทำให้ลำดับขาดตอน
ควรใช้ table.remove ซึ่งจะเลื่อนสมาชิกและรักษาดัชนีให้ต่อเนื่อง
local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])การสร้างจากข้อมูลเข้า
รูปแบบที่ใช้บ่อยคือ เริ่มจากตารางว่างแล้วเพิ่มสมาชิกต่อท้ายเมื่อข้อมูลเข้ามา
ในที่นี้ เรารวบรวมจำนวนคู่ลงในลำดับใหม่โดยใช้ insert
local evens = {}
for n = 1, 6 do
if n % 2 == 0 then
table.insert(evens, n)
end
end
print(evens[1], evens[2], evens[3])การแทรกและการลบร่วมกัน
คุณสามารถผสมการทำงานต่าง ๆ ได้อย่างอิสระ ด้านล่างเราเพิ่มชื่อสามชื่อต่อท้าย แล้วลบชื่อที่อยู่ตรงกลาง
หลังจากลบแล้ว รายการจะมีสมาชิกสองตัวที่อยู่ต่อเนื่องกัน
local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])ตรวจสอบความเข้าใจ
ลองคิดดูว่าการลบทำให้ลำดับเลื่อนอย่างไร
ทบทวน
คุณได้เรียนรู้การขยายรายการด้วย table.insert (เพิ่มต่อท้ายหรือแทรกที่ตำแหน่งซึ่งเริ่มนับที่ 1) และลดขนาดด้วย table.remove ซึ่งคืนค่าที่ลบออกและปิดช่องว่างให้
หลีกเลี่ยงช่องว่าง nil ที่สร้างเอง ถัดไป คุณจะได้วนซ้ำอย่างเป็นระเบียบด้วย ipairs
คำถามที่พบบ่อย
บทเรียน “เพิ่มและลบรายการ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เพิ่มและลบรายการ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Lua Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เพิ่มและลบรายการ”
ใช้ table.insert และ remove คุณปฏิบัติ Lua Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Lua Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Lua Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เพิ่มและลบรายการ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Lua Academy นี้ได้ไหม
ได้ บทเรียน Lua Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อาร์เรย์ในรูปตาราง
- เพิ่มและลบรายการ
- วนซ้ำด้วย ipairs
- ความยาวและการเรียงลำดับ