【Lua】table表删除指定元素 (转)
在对表做删除操作时,发现table.remove(table,idx)这个方法是根据table中的索引进行删除操作,而现在的需求是根据value值进行删除操作,在quick-x中也有相应的table方法封装:
1.根据table中的value值进行删除操作
-- table中删除指定元素(非根据索引) -- @param array 要操作的容器 -- @param value 删除value值 -- @param removeadll 是否删除所有相同的值 -- @return 返回删除值的个数 function removebyvalue(array, value, removeadll) -- deleteNum用于接收/返回删除个数; i/max 构成控制while循环 local deleteNum,i,max=0,1,#array while i<=max do if array[i] == value then -- 通过索引操作表的删除元素 table.remove(array,i) -- 标记删除次数 deleteNum = deleteNum+1 i = i-1 -- 控制while循环操作 max = max-1 -- 判断是否删除所有相同的value值 if not removeadll then break end end i= i+1 end -- 返回删除次数 return deleteNum end
posted on 2014-10-14 21:48 Mayday_Ly 阅读(7149) 评论(0) 编辑 收藏 举报