--[[ * @Classname TableEx * @Description table extension * @Date 2019/5/10 20:43 * @Created by MagicianJoker --]] function table.nums(t) local count = 0 for k, v in pairs(t) do count = count + 1 end return count end function table.insertto(dest, src, begin) if begin <= 0 then begin = #dest + 1 end local len = #src for i = 0, len - 1 do dest[i + begin] = src[i + 1] end return dest end function table.indexof(array, value, begin) for i = begin or 1, #array do if array[i] == value then return i end end return false end function table.keyof(hashtable, value) for k, v in pairs(hashtable) do if v == value then return k end end return false end function table.keyvalueindexof(array, key, value) for i = 1, #array do if array[i][key] == value then return i end end return false end function table.removebyvalue(array, value, removeall) local c, i, max = 0, 1, #array while i <= max do if array[i] == value then table.remove(array, i) c = c + 1 i = i - 1 max = max - 1 if not removeall then break end end i = i + 1 end return c end function table.walk(t, fn) for k, v in pairs(t) do fn(v, k) end end function table.clone(t) local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end function table.merge(dest, src) for k, v in pairs(src) do dest[k] = v end return dest end function table.mergeV2(dest, src) for k, v in pairs(src) do if dest[k] then dest[k] = dest[k] + v else dest[k] = v end end return dest end function table.reverse(list, s, e) while s