View difference between Paste ID: E8B0uZng and Dse78zEf
SHOW: | | - or go back to the newest paste.
1
local table = table
2
local math = math
3
local pairs = pairs
4
5
local clamp = math.Clamp
6
local count = table.Count
7
8
function table.SplitByCount(tbl, sli)
9
	if !tbl then print("table.SplitByCount failed table argument wasn't provided.") return end
10
	if !sli then print("table.SplitByCount failed slices argument wasn't provided.") return end
11
	
12
	local num = count(tbl) / sli
13
	local oldTable, newTable = tbl, {}
14
	
15
	tbl = {}
16
	
17
	for k, v in pairs(oldTable) do
18
		tbl[1 + count(tbl)] = { key = k, value = v }
19
	end
20
	
21
	local _num = 1
22
	for i = 1, num do
23
		for _i = 1, sli do
24
			if !newTable[_i] then newTable[_i] = {} end
25
			
26
			if tbl[_num] then
27
				newTable[_i][tbl[_num].key] = tbl[_num].value
28
				_num = _num + 1
29
			end
30
		end
31
	end
32
	
33
	return newTable
34
end