0Pricing
Lua Academy · บทเรียน

เพิ่มและลบรายการ

ใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อาร์เรย์ในรูปตาราง
  2. เพิ่มและลบรายการ
  3. วนซ้ำด้วย ipairs
  4. ความยาวและการเรียงลำดับ
← กลับไปที่ Lua Academy