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

【Lua】table表删除指定元素 (转)

时间:2014-10-14 23:49:59      阅读:543      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   strong   sp   div   on   

在对表做删除操作时,发现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

 

【Lua】table表删除指定元素 (转)

标签:style   blog   color   io   ar   strong   sp   div   on   

原文地址:http://www.cnblogs.com/Liyang1992/p/4025283.html

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