我不确定如何检查回调的每个元素并检查它们是否全部为真;我对尝试编码也很陌生,如果看起来很糟糕,很抱歉。
编写一个函数
myEvery
接受数组和回调作为参数。
该函数应返回一个布尔值,指示是否所有元素
数组在传递到回调时返回 true。
不要使用内置数组#every
let myEvery = function(arr, cb) {
let bool = false;
if (cb(arr) === true) {
bool = true;
}
return bool;
};
@Kooilnc 对 '[].every()' 的响应应该在这种情况下使用,但是为了理解创建回调和使用回调的函数,或条件中的验证函数,我会写一些对我有帮助的东西更好地理解他们。
& 这个问题并不是真正的回调上下文,而只是以“一流”方式使用函数。对我来说,回调的设计和命名似乎是为了在执行上下文完成时调用函数/方法的能力,但不仅限于此。
要给出回调的示例,并检查“回调”或“高阶函数”返回的值,请参阅下面的业余示例。
附注我不是专业人士,只是一个喜欢学习的爱好者!
let myArr = [0,2,4,6,8,9,10,11,12,14];
let isEvenOdd = function(val) {
console.log('checking if value is even or odd.');
return (val % 2 === 0) ? 'even' : 'odd';
}
let callback = function() {
console.log('done!\n\tlogged within the cb!');
}
let firstOddValue = function(arr, validator, cb) {
let tmp = arr;
let val = tmp.shift();
let eo = validator(val);
if (eo === 'even') {
console.log(`${val} is even`);
return firstOddValue(tmp, validator, cb);
} else if (eo === 'odd') {
console.log(`${val} is odd`);
}
return cb();
}
firstOddValue(myArr, isEvenOdd, callback);