Skip to content

Commit ca6934d

Browse files
committed
add limitBy filter
1 parent 995b096 commit ca6934d

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/filters/array-filters.js

+12
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@ var _ = require('../util')
22
var Path = require('../parsers/path')
33
var toArray = require('../directives/public/for')._postProcess
44

5+
/**
6+
* Limit filter for arrays
7+
*
8+
* @param {Number} n
9+
*/
10+
11+
exports.limitBy = function (arr, n) {
12+
return typeof n === 'number'
13+
? arr.slice(0, n)
14+
: arr
15+
}
16+
517
/**
618
* Filter filter for arrays
719
*

test/unit/specs/filters/filters_spec.js

+13
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,19 @@ describe('Filters', function () {
105105
}, 500)
106106
})
107107

108+
it('limitBy', function () {
109+
var filter = filters.limitBy
110+
var arr = [1, 2, 3]
111+
var res = filter(arr, false)
112+
expect(res).toBe(arr)
113+
res = filter(arr, 1)
114+
assertArray(res, [1])
115+
res = filter(arr, 10)
116+
assertArray(res, [1, 2, 3])
117+
res = filter(arr, -1)
118+
assertArray(res, [1, 2])
119+
})
120+
108121
it('filterBy', function () {
109122
var filter = filters.filterBy
110123
var arr = [

0 commit comments

Comments
 (0)