【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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM