1. 判断是否为空:
使用lua内置的next函数,比如:
if next(tableData) ~= nil then
但要注意:使用next判断的话,不得赋予tableData新的元素,否则结果是未知的。
2. 删除元素:
不建议方式:
local datalist = {1,2,3,4,5,6,7,8,9,10,20} for k, v in pairs(datalist) do if v % 2 == 0 then table.remove(datalist, k) end end table.foreachi(datalist,function(k,v) print("output value:" .. v) end) 输出结果: [LUA-print] output value:1 [LUA-print] output value:3 [LUA-print] output value:5 [LUA-print] output value:7 [LUA-print] output value:9 [LUA-print] output value:20
会发现有的数据没有被删除,故此推荐如下方式(从后往前删除):
local datalist = {1,2,3,4,5,6,7,8,9,10,20} for i = #datalist,1, -1 do if datalist[i] % 2 == 0 then table.remove(datalist, i) end end table.foreachi(datalist,function(k,v) print("output value:" .. v) -- outvalue:1,3,5,7,9,20 end) [LUA-print] output value:1 [LUA-print] output value:3 [LUA-print] output value:5 [LUA-print] output value:7 [LUA-print] output value:9