2 回答
TA贡献1827条经验 获得超8个赞
我只是先把它弄平(第一个控制台日志),除非你想要整个“外部”数组,在这种情况下只做.find两次:
var data = [
[{
"Id": "123",
"Name": "Abc",
"Amount": 110000
},
{
"Id": "567",
"Name": "DEF",
"Amount": 98000
},
{
"Id": "345",
"Name": "XYZ",
"Amount": 145000
}
],
[{
"Id": "656",
"Name": "Abc",
"Amount": 110000
},
{
"Id": "223",
"Name": "DEF",
"Amount": 98000
},
{
"Id": "897",
"Name": "XYZ",
"Amount": 145000
}
]
];
var result = data.flat().filter(element => element.Id == "223");
console.log(result);
console.log(data.find(el => el.find(item => item.Id === "223")))
TA贡献1864条经验 获得超2个赞
您可以先使用.flat()数组data,然后对其进行简单的过滤并搜索Id您想要的;或递归过滤数组,然后搜索Id您想要的。下面的片段演示了第二种方式
let result = data.map( array =>
array.filter( item => item.Id === "223" )
).flat();
var data =
[ [ { Id: '123', Name: 'Abc', Amount: 110000 }
, { Id: '567', Name: 'DEF', Amount: 98000 }
, { Id: '345', Name: 'XYZ', Amount: 145000 }
]
, [ { Id: '656', Name: 'Abc', Amount: 110000 }
, { Id: '223', Name: 'DEF', Amount: 98000 }
, { Id: '897', Name: 'XYZ', Amount: 145000 }
] ];
let result = data.map( array => array.filter( item => item.Id === "223" )).flat();
console.log(result);
添加回答
举报