negate boolean function in javascript -


how negate boolean function?

such using like:

 _.filter = function(collection, test) {     var tmp = []     _.each(collection, function(value){       if (test(value)) {         tmp.push(value);       }     })     return tmp   };     var bag = [1,2,3]; var evens = function(v) { return v % 2 === 0}; 

this wrong:

// returns opposite of evens var result = _.filter(bag, !evens); 

result:

[1,3] 

try making function returns function:

function negate(other) {   return function(v) {return !other(v)}; }; 

used this:

var result = _.filter(bag, negate(evens)); 

or declare function when call it:

var result = _.filter(bag, function(v) {return evens(v)}); 

Popular posts from this blog