41 lines
964 B
Text
41 lines
964 B
Text
|
export {
|
||
|
// all returns true if the given function fn evaluates to a truthy value on
|
||
|
// all of the items in the enumerable.
|
||
|
all: func(enumerable, fn) {
|
||
|
for k, v in enumerable {
|
||
|
if !fn(k, v) {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
},
|
||
|
// any returns true if the given function fn evaluates to a truthy value on
|
||
|
// any of the items in the enumerable.
|
||
|
any: func(enumerable, fn) {
|
||
|
for k, v in enumerable {
|
||
|
if fn(k, v) {
|
||
|
return true
|
||
|
}
|
||
|
}
|
||
|
return false
|
||
|
},
|
||
|
// chunk returns an array of elements split into groups the length of size.
|
||
|
// If the enumerable can't be split evenly, the final chunk will be the
|
||
|
// remaining elements.
|
||
|
chunk: func(enumerable, size) {
|
||
|
numElements := len(enumerable)
|
||
|
|
||
|
if !numElements {
|
||
|
return []
|
||
|
}
|
||
|
|
||
|
res := []
|
||
|
idx := 0
|
||
|
for idx < numElements {
|
||
|
res = append(res, enumerable[idx:idx+size])
|
||
|
idx += size
|
||
|
}
|
||
|
return res
|
||
|
}
|
||
|
}
|