Merge pull request #657 from yazeedb/add-reject

Add reject
This commit is contained in:
Angelos Chalaris
2018-04-27 15:49:17 +03:00
committed by GitHub
4 changed files with 39 additions and 0 deletions

12
snippets/reject.md Normal file
View File

@ -0,0 +1,12 @@
### reject
Takes a predicate and array, like `Array.filter()`, but only keeps `x` if `pred(x) === false`.
```js
const reject = (pred, array) => array.filter((...args) => !pred(...args));
```
```js
reject(x => x % 2 === 0, [1, 2, 3, 4, 5]); // [1, 3, 5]
reject(word => word.length > 4, ['Apple', 'Pear', 'Kiwi', 'Banana']); // ['Pear', 'Kiwi']
```

View File

@ -217,6 +217,7 @@ redirect:browser,url
reducedFilter:array
reduceSuccessive:array,function
reduceWhich:array,function
reject:array
remove:array
removeNonASCII:string,regexp
renameKeys:object

2
test/reject/reject.js Normal file
View File

@ -0,0 +1,2 @@
const reject = (pred, array) => array.filter((...args) => !pred(...args));
module.exports = reject;

View File

@ -0,0 +1,24 @@
const test = require('tape');
const reject = require('./reject.js');
test('Testing reject', (t) => {
//For more information on all the methods supported by tape
//Please go to https://github.com/substack/tape
t.true(typeof reject === 'function', 'reject is a Function');
const noEvens = reject(
(x) => x % 2 === 0,
[1, 2, 3, 4, 5]
);
t.deepEqual(noEvens, [1, 3, 5]);
const fourLettersOrLess = reject(
(word) => word.length > 4,
['Apple', 'Pear', 'Kiwi', 'Banana']
);
t.deepEqual(fourLettersOrLess, ['Pear', 'Kiwi']);
t.end();
});