count
function count( arr, fv ) --> res
Description
Sorts an array table into groups and returns a count for the number of objects in each group. Similar to group, but instead of returning a list of values, returns a count for the number of values in that group.
Parameters
- arr
-
Array table where the values should be grouped.
- fv
-
Function that takes a value from the array table and decides in which group it belongs.
Return Values
- res
-
Table with count results.
Code
--ZFUNC-count-v1 local function count( tab, fv ) --> res local res = {} for i, v in pairs( tab ) do local k = fv( v ) local base = res[ k ] or 0 res[ k ] = base + 1 end return res end return count
Examples
local t = require( "taptest" ) local count = require( "count" ) local iseven = require( "iseven" ) local res = count( { 1, 2, 3, 4, 5 }, function( v ) if iseven( v ) then return "even" else return "odd" end end ) t( res.even, 2 ) t( res.odd, 3 ) t()