从每个返回一个值?

时间:2019-04-08 12:13:56

标签: javascript

使用Object.keys(arr).forEach((item) {或lodash _.forEach(arr, (item, key) => {遍历对象。

如何从循环内部返回值。

let myTestValue = _.forEach(arr, (item, key) => {
    return item.id ? true : false;
});

基本上,我想循环测试item.id,只要所有项目return true都可以,只要有任何return false,我就想跳出循环。实际上,测试要复杂一些,但以上只是一个基本示例。

myTestValue只需要按住truefalse

2 个答案:

答案 0 :(得分:1)

您可以使用Array#every并使用第一个假值退出循环。

var object = { one: { id: 'a' }, two: {}, three: { id: 'c' } },
    hasAllId = Object.values(object).every(item => item.id);

console.log(hasAllId);

答案 1 :(得分:0)

尝试使用Array.prototype.every

function isBelowThreshold(currentValue) {
  /**
   * Here, we can log which elements are being checked.
   * In the log, you will see that 1 is checked, then 30 is checked,
   * then none of the rest of the elements are checked
   * since 30 fails the threshold.
  */
  console.log(currentValue);
  return currentValue < 30;
}

var array1 = [1, 30, 39, 29, 10, 13];

// This outputs false because not all the elements are below 30:
console.log(array1.every(isBelowThreshold));