javascript - Lodash - 使用 _.some 检查对象数组中的空数组

标签 javascript angularjs arrays lodash

我有一个这样的对象数组 - 比如 testArray。 enter image description here 我需要检查数组中的每个对象,如果任何 saveNumbers 数组为空,我的函数应该返回 false。

我的函数如下:

  public checkSaveNumbers(): boolean {
    let result;
    if (this.testArray) {
      result = _.some(this.testArray, member => !member.saveNumbers.length);
    }
    console.log(result);
  }

在这里,我上面的对象的结果显示为真,我们可以看到数组中的第一个元素的 saveNumbers 数组为空。在那种情况下,我希望结果是错误的。我想使用 Lodash 来实现这一点,但我不确定这里出了什么问题。

更新:

根据评论中的建议,我将代码更改为以下内容:

public checkSaveNumbers(): boolean {
  let result = true;
  if (this.testArray) {
    result = _.every(this.testArray, member => member.saveNumbers.length > 0); //as soon as the condition is false, result should become false otherwise result will remain true.
    console.log(result);
  }
}

但是,使用这段代码,即使我的 saveNumbers 数组对于 testArray 中的每个成员都非空,我得到的结果也是 false。

最佳答案

If any of the saveNumbers array is empty, my function should return false.

你尝试过:

_.some(array, member => !member.saveNumbers.length)

但这意味着“true 如果至少一个成员的 saveNumbers 为空。”这与您想要的完全相反。

因此否定整个表达式

!_.some(array, member => !member.saveNumbers.length)

更新:

如果这也不适合你:

_.every(array, member => member.saveNumbers.length > 0)

那么你在其他地方有一个错误。

关于javascript - Lodash - 使用 _.some 检查对象数组中的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919202/

相关文章:

javascript - 保留平面数组作为 2D 或 3D 数组的引用副本

javascript - 使用 JQuery 控制 CSS 动画

asp.net-mvc - 如何在razor中将 Angular 标签添加到html属性

CSV 多项式的 Java.Lang.Double[] 到 Double[] 问题

javascript - 在循环中组合 2 个数组中的 2 个对象?

java - JSP 中的 ItemEvent 等效项

javascript - 如何在点击选项卡内容时获取文本框

javascript - Angularjs - 使用 ng-repeat 连续多次循环

javascript - 在 Angularjs 的响应中获取 Promise 数据

Delphi SetLength 自定义索引