mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-16 21:00:40 -07:00
feat: Array sum filter (#661)
* feat(filters): add array sum filter * docs(filters): array sum filter * docs: update versoin number in source/filters/sum.md --------- Co-authored-by: Jun Yang <[email protected]>
This commit is contained in:
co-authored by
Jun Yang
parent
fe978c8cd9
commit
629d958b86
@@ -43,6 +43,15 @@ export function * map (this: FilterImpl, arr: Scope[], property: string): Iterab
|
||||
return results
|
||||
}
|
||||
|
||||
export function * sum (this: FilterImpl, arr: Scope[], property?: string): IterableIterator<unknown> {
|
||||
let sum = 0
|
||||
for (const item of toArray(toValue(arr))) {
|
||||
const data = Number(property ? yield this.context._getFromScope(item, stringify(property), false) : item)
|
||||
sum += Number.isNaN(data) ? 0 : data
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
export function compact<T> (this: FilterImpl, arr: T[]) {
|
||||
arr = toValue(arr)
|
||||
return toArray(arr).filter(x => !isNil(toValue(x)))
|
||||
|
||||
Reference in New Issue
Block a user