我想这是两个问题。我仍然在使用 reduce 方法时遇到问题,我得到了使用它的简单方法
reduce([1,2,3], 函数(a, b) {
返回 a + b;
}, 0);
//6
将它与数字以外的任何东西一起使用真的让我感到困惑。那么我如何使用 reduce 代替 for 循环来构建一个包含函数呢?评论将不胜感激。谢谢大家。
function contains(collection, target) {
for(var i=0; i < collection.length; i++){
if(collection[i] === target){
return true;
}
}
return false;
}
contains([1, 2, 3, 4, 5], 4);
//true
最佳答案
这是你需要的:
function contains(collection, target) {
return collection.reduce( function(acc, elem) {
return acc || elem == target;
}, false)
};
正如 adaneo 所说,对于这个特定问题可能有更简单的方法,但是您将此标记为“函数式编程”,所以我猜您想在这种解决问题的方法上做得更好,我完全赞同。
关于javascript - 如何在 JavaScript 中使用 reduce 而不是 for 循环构建 contains 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243609/