Guest User

table.Spilt + garrysmod

a guest
Jul 6th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.76 KB | None | 0 0
  1.  
  2. local table = table
  3. local math = math
  4. local pairs = pairs
  5.  
  6. local clamp = math.Clamp
  7. local count = table.Count
  8.  
  9. function table.SplitByCount(tbl, sli)
  10.     if !tbl then print("table.SplitByCount failed table argument wasn't provided.") return end
  11.     if !sli then print("table.SplitByCount failed slices argument wasn't provided.") return end
  12.    
  13.     local num = count(tbl) / sli
  14.     local oldTable, newTable = tbl, {}
  15.    
  16.     tbl = {}
  17.    
  18.     for k, v in pairs(oldTable) do
  19.         tbl[1 + count(tbl)] = { key = k, value = v }
  20.     end
  21.    
  22.     local _num = 1
  23.     for i = 1, num do
  24.         for _i = 1, sli do
  25.             if !newTable[_i] then newTable[_i] = {} end
  26.            
  27.             if tbl[_num] then
  28.                 newTable[_i][tbl[_num].key] = tbl[_num].value
  29.                 _num = _num + 1
  30.             end
  31.         end
  32.     end
  33.    
  34.     return newTable
  35. end
Advertisement
Add Comment
Please, Sign In to add comment