javascript - 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,但有没有更好的方法来代替打两个电话?
感谢和赞赏
解决方案
在这种情况下,我将使用Array.some()方法并遍历每个数组及其子数组,直到“code”等于 0。最终代码可能如下所示:
const result = values.some(item => item.mySubArray.some(subArray => subArray.code === 0));
如果您的子数组“代码”值之一为 0,则“结果”值将包含“真”。
推荐阅读
- c# - 为什么我不能在程序外使用键绑定?
- arrays - 如何在飞镖中找到数组中对象的值总和?
- mysql - 在 React 和 node.js 上从 mysql 表中获取空 {}
- python - 将默认 PyGame 背景从黑色更改为白色
- node.js - 填充数据后的 mongoDB 文本搜索
- javascript - 浏览器:向使用自签名证书的 API 发出 HTTPS GET 请求。以编程方式,无需在用户端进行任何工作
- r - 在我的应用函数中使用 dplyr 的 slice_sample() 的正确方法是什么?
- apache-spark - spark-submit 将包添加到工作节点
- list - 如何使用 shared_preferences 包保存我的字符串列表?
- visual-studio-code - 必须按 ctrl + 单击并滚动鼠标滚轮才能在 vscode 中放大和缩小