码迷,mamicode.com
首页 > 其他好文 > 详细

利用迭代器删除表中元素

时间:2019-06-02 15:48:52      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:end   方式   迭代   st表   pairs   else   lse   int   一个   

例子:将test表中的偶数移除掉

 

local test = { 2, 3, 4, 8, 9, 100, 20, 13, 15, 7, 11}

for i, v in ipairs( test ) do

  if v % 2 == 0 then

    table.remove(test, i)

  end

end

 

for i, v in ipairs( test ) do

  print(i .. "====" .. v)

end

 

打印结果:

 

1====3

2====8

3====9

4====20

5====13

6====15

7====7

8====11

 

 

结果偶数8,20还存在。

 

因为迭代器每删除一个元素,然后的元素自动往前移动。

 

正确的删除方式:

方式一:从后面往前删除

tb={1,2,3,4,5,6,7,8,9,10,11,12,13,14}

 

for i=#tb,1,-1 do

      if tb[i]%2==0 then

           table.remove(tb,i)

      end

end

 

方式二:while遍历

i=1

while i<=#tb do

      if tb[i]%2==0 then

           table.remove(tb,i)

      else

           i=i+1

      end

end

利用迭代器删除表中元素

标签:end   方式   迭代   st表   pairs   else   lse   int   一个   

原文地址:https://www.cnblogs.com/gd-luojialin/p/10962876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!