Procházet zdrojové kódy

Merge pull request #1699 from Mat-Moo/dev

Add offset facility to limit filter aka mysql limit
Evan You před 10 roky
rodič
revize
d7ef64363f

+ 4 - 2
src/filters/array-filters.js

@@ -6,11 +6,13 @@ var toArray = require('../directives/public/for')._postProcess
  * Limit filter for arrays
  *
  * @param {Number} n
+ * @param {Number} offset (Decimal expected)
  */
 
-exports.limitBy = function (arr, n) {
+exports.limitBy = function (arr, n, offset) {
+  offset = offset ? parseInt(offset, 10) : 0
   return typeof n === 'number'
-    ? arr.slice(0, n)
+    ? arr.slice(offset, offset + n)
     : arr
 }
 

+ 7 - 0
test/unit/specs/filters/filters_spec.js

@@ -116,6 +116,13 @@ describe('Filters', function () {
     assertArray(res, [1, 2, 3])
     res = filter(arr, -1)
     assertArray(res, [1, 2])
+    // with offsets, note offsets are 0 bound (as expected)
+    res = filter(arr, 1, 1)
+    assertArray(res, [2])
+    res = filter(arr, 2, 1)
+    assertArray(res, [2, 3])
+    res = filter(arr, 1, 2)
+    assertArray(res, [3])
   })
 
   it('filterBy', function () {