javascript - How to solve _.some using _.every? -


working on programming challenge re-implement functionality of underscore.js in standard javascript. working on implementing _.some function. (http://underscorejs.org/#some) part i'm struggling it's asking me find way solve using _.every internally. (http://underscorejs.org/#every)

i have finished _.every function earlier , works should.

here logically wanting in sketched code:

_.some = function(collection, truthstatementfunction) {    return !(_every(collection, !truthstatementfunction))  } 

or in english, flip truth statement test condition false... , if _.every test returns true... know _.some of original truth statement false (so flip return of _.every correct return _some). likewise if _.every returns false flip correct return of true _.some.

obviously problem sketch !truthstatementfunction part. how inside iterator change internals of function flip it? doesn't seem internals of function accessible...

am barking wrong tree entirely, , there better way solve using _.every?

pass _every function returns inversion of result truthstatementfunction:

_.some = function(collection, truthstatementfunction) {      return !(_every(collection, function(v) {         return !truthstatementfunction(v);     })); } 

to answer second part of question:

and there better way solve using _.every?

there better way solve using _.every. iterate on collection, , return true find element matches. more efficient in cases _.some going return true, since don't care how many elements in collection satisfy predicate, long there @ least one.

_.some = function(c, pred) {      for(var = 0; < c.length; i++) {         if (pred(c[i])) return true;     }     return false; } 

Comments

Popular posts from this blog

css - Which browser returns the correct result for getBoundingClientRect of an SVG element? -

gcc - Calling fftR4() in c from assembly -

Function that returns a formatted array in VBA -