我有一个这样的对象数组 - 比如 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。
最佳答案
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/