【发布时间】:2019-01-04 23:35:59
【问题描述】:
我正在尝试创建一个接受数组和回调函数的函数。如果传递给回调的数组中的所有值都返回 true,则该函数应返回 true,否则返回 false。但我不确定我做错了什么
const every = function(arr, callback) {
arr.forEach(function(element) {
if(!callback(element)) {
return false
}
})
return true
};
every([1, 2, 3, 4, 5], function(val) {
return val < 2
});
预期结果 => 错误 但我说实话。
【问题讨论】:
-
forEach 方法的回调内部的返回在调用该方法的函数中完全没有。我建议过滤数组并测试结果长度。或者,较新版本的 JavaScript 实际上在数组上有一个 every 方法:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
只是我还是以语法错误的形式传递的回调?末尾的
{}看起来很奇怪 -
Array.prototype有一个every可以满足您的需求,例如[1, 2, 3, 4, 5].every(val => val < 2) -
@ic3b3rg 他显然是想了解如何自己实现类似的功能。
-
@Barmar 不太确定他是否知道
Array.prototype.every
标签: javascript arrays foreach callback