无法弄清楚如何使用 if 语句通过回调检查数组中的所有元素并检查它们是否全部为 true

问题描述 投票:0回答:1

我不确定如何检查回调的每个元素并检查它们是否全部为真;我对尝试编码也很陌生,如果看起来很糟糕,很抱歉。

编写一个函数

myEvery
接受数组和回调作为参数。 该函数应返回一个布尔值,指示是否所有元素 数组在传递到回调时返回 true。 不要使用内置数组#every

let myEvery = function(arr, cb) {
   let bool = false;
   if (cb(arr) === true) {
      bool = true;
   }
   return bool;
};
javascript arrays function callback
1个回答
0
投票

@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);

© www.soinside.com 2019 - 2024. All rights reserved.