UNPKG

ds-algo-study

Version:

Just experimenting with publishing a package

43 lines (32 loc) 1.1 kB
/******************************************************************************* Write a function `xorSelect` that accepts an array and two callback as arguments. The function should return a new array containing elements of the original array that result in true when passed in one of the callbacks, but not both. Examples: let isEven = function(n) { return n % 2 === 0; }; let isPositive = function(n) { return n > 0; }; console.log(xorSelect([-2, -1, 1, 2, 3, 4], isEven, isPositive)); // [ -2, 1, 3 ] let longString = function(s) { return s.length > 4; }; let startsA = function(s) { return s[0] === "a"; }; console.log( xorSelect(["art", "academy", "app", "cat", "buttery"], longString, startsA) ); // [ 'art', 'app', 'buttery' ] *******************************************************************************/ let xorSelect = function(array, cb1, cb2) { let selected = array.filter(function(el) { return (cb1(el) || cb2(el)) && !(cb1(el) && cb2(el)); }); return selected; }; //******************---------------------******************\\*/ module.exports = xorSelect;