109 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| function table.any(list, cb)
 | |
|   if not list or not cb then return nil end
 | |
|   for k, v in pairs(list) do
 | |
|     if cb(v) then
 | |
|       return true
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return false
 | |
| end
 | |
| 
 | |
| function table.size(list)
 | |
|   local count = 0
 | |
|   for _, v in pairs(list) do
 | |
|     if v ~= nil then
 | |
|       count = count + 1
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return count
 | |
| end
 | |
| 
 | |
| function table.values(list)
 | |
|   if not list then return nil end
 | |
|   local values = {}
 | |
|   for k, v in pairs(list) do
 | |
|     if v ~= nil then
 | |
|       table.insert(values, v)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return (#values > 0) and values or nil
 | |
| end
 | |
| 
 | |
| function table.filter(list, cb)
 | |
|   if not list or not cb then return nil end
 | |
|   local filtered = {}
 | |
|   for k, v in pairs(list) do
 | |
|     if cb(v) then
 | |
|       filtered[k] = v
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return filtered
 | |
| end
 | |
| 
 | |
| function table.map(list, cb)
 | |
|   local mapped = {}
 | |
|   for k, v in pairs(list) do
 | |
|     table.insert(mapped, cb(v))
 | |
|   end
 | |
| 
 | |
|   return mapped
 | |
| end
 | |
| 
 | |
| ---Return if table contains value
 | |
| ---@param t table
 | |
| ---@param value any
 | |
| ---@return boolean
 | |
| function table.contains(list, value)
 | |
|   -- if not list or not value then return nil end
 | |
|   for k,v in pairs(list) do 
 | |
|     if v == value then
 | |
|       return true
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return false
 | |
| end
 | |
| 
 | |
| function table.find(list, cb)
 | |
|   -- if not list or not cb then return nil end
 | |
|   for k,v in pairs(list) do
 | |
|     if cb(v) then
 | |
|       return v
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return nil
 | |
| end
 | |
| 
 | |
| function table.findIndex(list, cb)
 | |
|   -- if not list or not cb then return nil end
 | |
|   for k,v in pairs(list) do
 | |
|     if cb(v) then
 | |
|       return k
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return nil
 | |
| end
 | |
| 
 | |
| function table.tostring(list)
 | |
|   local result = {}
 | |
|   for i, v in ipairs(list) do
 | |
|       table.insert(result, tostring(v))
 | |
|   end
 | |
|   return result
 | |
| end
 | |
| 
 | |
| function table.removeKey(list, key)
 | |
|   if list[key] then
 | |
|     local r = list[key]
 | |
|     list[key] = nil
 | |
|     return r
 | |
|   end
 | |
| 
 | |
|   return nil
 | |
| end | 
