js 有一个a = [{ a: 1, b: 2, c: [[{ a: 2, b: 3, c: [[{ a: 3, d: 4, c: [] }]] }], [{ a: 4, d: 5, c: [[{ a: 5, b: 6, c: [] }]] }]] }]; 根据属性a找到某一条数据
时间: 2023-08-18 14:29:29 浏览: 114
您可以使用数组的 `find` 方法,结合递归地查找嵌套的子数组和对象,找到符合条件的数据。
例如,如果要查找属性 `a` 值为 4 的对象,可以使用以下代码:
```javascript
const data = [{ a: 1, b: 2, c: [[{ a: 2, b: 3, c: [[{ a: 3, d: 4, c: [] }]] }], [{ a: 4, d: 5, c: [[{ a: 5, b: 6, c: [] }]] }]] }];
function findDataByA(data, a) {
let result = data.find(obj => obj.a === a);
if (!result) {
data.some(obj => {
if (obj.c) {
result = findDataByA(obj.c.flat(), a);
return result;
}
});
}
return result;
}
const result = findDataByA(data, 4);
console.log(result);
```
输出结果:
```
{ a: 4, d: 5, c: [ [ { a: 5, b: 6, c: [] } ] ] }
```
这样,您就可以根据属性 `a` 找到某一条数据了。