看了下其餘的table方法,好像沒有什麼好說的,註釋裏已經寫的很明白了,這裏就不羅嗦了~(小白:懶。。。)。參考資料爲quick_cocos.html
星月傾心貢獻~~~函數
--[[ -- 返回指定表格中的全部值(value) -- example local t = { a = 1, b = 2, c = 3 } local values = table.values( t ) -- values = { 1, 2, 3 } -- @parame t 要檢查的表格(t表示是table) -- @parame table 返回指定表格的全部值,它是一個值集合的表格 --]] function table.values( t ) local values = {} for _, v in pairs( t ) do values[#values + 1] = v end return values end --[[ -- 在 目標表格 的指定位置插入 來源表格,若是沒有指定位置則鏈接兩個表格 -- example local tDest = { 1, 2, 3 } local tSrc = { 4, 5, 6 } table.insertTo( tDest, tSrc ) -- tDest = { 1, 2, 3, 4, 5, 6 } tDest = { 1, 2, 3 } table.insertTo( tDest, tSrc, 5 ) -- tDest = { 1, 2, 3, nil, 4, 5, 6} -- @param tDest 目標表格(t表示是table) -- @param tSrc 來源表格(t表示是table) -- @param iBegin 插入位置(i表示是integer) --]] function table.insertTo( tDest, tSrc, iBegin ) begin = checkInt( iBegin ) if begin <= 0 then begin = #tDest + 1 end local len = #tSrc for i = 0, len - 1 do tDest[i + begin] = tSrc[i+1] end end --[[ -- 在表格中查找指定值,返回其索引,查找失敗則返回false -- example local t = { "a", "b", "c" } table.indexOf( t, "b" ) -- 輸出 2 -- @param t 表格(t表示是table) -- @param value 要查找的值 -- @param iBegin 起始索引值(i表示是integer) -- @return integer 返回對應的索引 如:5 --]] function table.indexOf( t, value, iBegin ) for i = iBegin or 1, #t do if t[i] == value then return i end end return false end --[[ -- 在表格中查找指定值,返回其key,查找失敗則返回nil -- example local t = { name = "a", name2 = "b", name3 = "c" } table.keyOf( t, "b" ) -- 輸出 name3 -- @param t 表格(t表示是table) -- @param value 要查找的值 -- @return string 返回對應的 key 如:"name" --]] function table.keyOf( t, value ) for k, v in pairs( t ) do if v == value then return k end end return nil end --[[ -- 從表格中刪除指定值,返回刪除的值的個數 -- example local t = { "a", "b", "c", "c" } table.removeByValue( t, "c", true ) -- 輸出 2 -- @param t 表格(t表示是table) -- @param value 要刪除的值 -- @param bRemoveAll 是否刪除全部相同值(b表示是booleam) -- @return integer 返回刪除的值的個數 --]] function table.removeByValue( t, value, bRemoveAll ) local c, i, max = 0, 1, #t while i <= max do if t[i] == value then table.remove( t, i ) c = c + 1 i = i - 1 max = max - 1 if not bRemoveAll then break end end i = i + 1 end return c end --[[ -- 對錶格中每個值執行一次指定的函數,並用函數返回值更新表格內容 -- example local t = { name = "dualface", comp = "chukong" } table.map( t, function( v, k ) -- 在每一個值先後添加括號 return "(" .. v .. ")" end ) -- 輸出修改後的表格內容 for k, v in pairs( t ) do print( k, v ) end -- 輸出 -- name (dualface) -- comp (chukong) fn 參數指定的函數具備兩個參數,而且返回一個值。原型以下: function map_function(value, key) return value end -- @param t (t表示是table) -- @param fn 函數 --]] function table.map( t, fn ) for k, v in pairs( t ) do t[k] = fn( v, k ) end end --[[ -- 對錶格中每個值執行一次指定的函數,但不更新表格內容 -- example local t = { name = "dualface", comp = "chukong" } table.walk( t, function( v, k ) -- 輸出每個值 print( v ) end ) fn 參數指定的函數具備兩個參數,而且返回一個值。原型以下: function map_function(value, key) end -- @param t 表格(t表示是table) -- @param fn 函數 --]] function table.walk( t, fn ) for k, v in pairs( t ) do fn( v, k ) end end --[[ -- 對錶格中每個值執行一次指定的函數,若是該函數返回false,則對應的值會從表格中刪除 -- example local t = { name = "dualface", comp = "chukong" } table.filter( t, function( v, k ) return v ~= "dualface" -- 當值等於 dualface 時,過濾掉該值 end ) -- 輸出過濾後的表格內容 -- comp chukong fn 參數指定的函數具備兩個參數,而且返回一個 boolean 值。原型以下: function map_function(value, key) return true or false end -- @param t 表格(t表示是table) -- @param fn 函數 --]] function table.filter( t, fn ) for k, v in pairs( t ) do if not fn( v, k ) then t[k] = nil end end end --[[ -- 遍歷表格,確保其中的值惟一 -- example local t = { "a", "a", "b", "c" } local n = table.unique( t ) -- n = { "a", "b", "c" } == 重複的 a 被過濾掉 -- @param t 表格(t表示是table) -- @return table 返回 包含全部惟一值的 表格 --]] function table.unique( t ) local check = {} local n = {} for k, v in pairs( t ) do if not check[v] then n[k] = v check[v] = true end end return n end
做者使用 cocos2d-x 3.0 + lua學習和工做心得,未經做者容許,請勿轉載!在此謝謝各位手下留情~~~學習
本文沒有得到做者本人贊成,不得轉載,不然必追究相關責任。轉載請註明出處!!~~ui