处理编程挑战以在标准 javascript 中重新实现 underscore.js 的功能。具体来说,我正在努力实现该_.some
功能。( http://underscorejs.org/#some ) 我正在苦苦挣扎的部分是它要求我找到一种在_.every
内部使用的方法来解决它。( http://underscorejs.org/#every )
我之前已经完成了这个_.every
功能,它应该可以正常工作。
从逻辑上讲,这是我想要在草图代码中做的事情:
_.some = function(collection, truthStatementFunction) {
return !(_every(collection, !truthStatementFunction))
}
或者用英语,翻转真值语句来测试条件为假的地方......如果_.every
测试返回真......那么我们知道_.一些原始真值语句是假的(所以翻转返回_.every
得到的正确回报_some
)。同样,如果_.every
返回 false 然后翻转它以获得正确的返回 true for _.some
。
显然,这个草图的问题是!truthStatementFunction
零件。如何进入该迭代器以更改函数的内部以翻转它?似乎无法访问该函数的内部...
我是不是完全找错了树,有没有更好的方法来解决这个问题_.every
?