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

新手上路,请多包涵

我有一个这样的对象数组——比如 testArray。 在此处输入图像描述 我需要检查数组中的每个对象,如果任何 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。

原文由 clever_bassi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 850
2 个回答

如果任何 saveNumbers 数组为空,我的函数应该返回 false。

你试过:

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

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

所以否定 整个表达式

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

更新:

如果这也不适合您:

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

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

原文由 lawrence 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题