在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在table表中使用for迭代时,将符合条件的元素删除时,后面元素前移,然后产生跳跃 1 local t = {} 2 t[1] = 1 3 t[2] = 2 4 t[3] = 3 5 t[4] = 4 6 t[5] = 5 7 t[6] = 6 8 local i = 1 9 while i < #t do 10 print(i) 11 print(t[i].."\n------------------") 12 if t[i] == 3 then 13 print("删除操作、值:"..t[i]) 14 print("\n------------------") 15 table.remove(t,i) 16 else 17 i = i + 1 18 end 19 end 达到预期效果、可行。 ---------------------------------------------- 第二种方式是新建一个表来存储原表中需要保留下来的元素,否则不保存 1 local t = {} 2 local t_clone = {} 3 t[1] = 1 4 t[2] = 2 5 t[3] = 3 6 t[4] = 4 7 t[5] = 5 8 t[6] = 6 9 local i = 1 10 local j = 1 11 for i,v in pairs(t) do 12 print(i) 13 print(t[i].."\n------------------") 14 if t[i] == 3 then 15 print("删除操作、值:"..t[i]) 16 print("\n------------------") 17 else 18 t_clone[j] =t[i] 19 j = j + 1 20 end 21 i = i + 1 22 end 23 --释放t表 24 t = nil 25 26 for i=1,#t_clone do 27 print(i.." = "..t_clone[i]) 28 end
|
请发表评论