首页 > 解决方案 > lodash .filter 带有子数组的数组以获取字段值

问题描述

我有一个包含许多 json 记录的数组,每个数组都包含一个子数组。我想遍历每个数组及其每个子数组。有一个字段,如果子数组字段包含像 0 这样的值,它会停止并返回 true。基本上,停止循环并返回代码字段的第一个 0 值事件的真值。

这是我的数组/子数组结构

[{id: 0, name: 'test0', mySubArray[{id:0, code: 0},{id:1, code: 1}, {id:2, code: 2} ] }
{id: 1, name: 'test1', mySubArray[{id:1, code: 1},{id:2, code: 2}, {id:3, code: 3} ] }
]

目前我的代码是

getExists() {
exist = this.rows.map(row => (this.doesValueExists(row.mySubArray)))

return exist
}

在我的其他方法中

doesValueExists(subArrray) {
 let result = _.filter(subArray, 'code', 0)

 return result
}

使用 lodash,我尝试了类似的方法,但没有成功

const result = _.map(row, mySubArray => _.filter(mySubArray, 'code', 0))

我不熟悉 lodash,但有没有更好的方法来代替打两个电话?

感谢和赞赏

标签: javascriptreactjslodash

解决方案


在这种情况下,我将使用Array.some()方法并遍历每个数组及其子数组,直到“code”等于 0。最终代码可能如下所示:

const result = values.some(item => item.mySubArray.some(subArray => subArray.code === 0));

如果您的子数组“代码”值之一为 0,则“结果”值将包含“真”。


推荐阅读