【发布时间】:2021-10-14 14:14:22
【问题描述】:
我有数据数组,里面有嵌套数组 (level1arr, leve21arr ...)
const data = [
{
level1arr: [
{
level2arr: [{ id: 1, isValid: true }, { id: 2, isValid: true }, { id: 3, isValid: true }],
},
{
level2arr: [{ id: 4, isValid: true }, { id: 5, isValid: true }, { id: 6, isValid: true }],
},
],
},
{
level1arr: [
{
level2arr: [{ id: 7, isValid: true }, { id: 8, isValid: true }, { id: 9, isValid: true }],
},
{
level2arr: [{ id: 10, isValid: true }, { id: 11, isValid: true }, { id: 12, isValid: true }],
},
],
},
];
我还有另一个数组:
const invalidIds = [2,5]
我想查找具有 apecyfic id 的元素并将 isValid 属性更改为 false。 是不是比迭代多个嵌套数组更好的方法,像这样:
data.forEach(lvl1 => {
lvl1.level1arr.forEach(lvl2 => {
lvl2.level2arr.forEach(element => {
// further nesting
});
});
})
这种对多个数组的迭代不利于性能。使用嵌套数组处理这种情况的最佳方法是什么?
【问题讨论】:
-
如果您需要进行多次查找,最好的办法是将数据结构转换为更合适的形式。
标签: javascript arrays