gpt4 book ai didi

javascript - 在嵌套数组中查找对象及其位置

转载 作者:行者123 更新时间:2023-11-30 11:13:12 25 4
gpt4 key购买 nike

我从另一个问题中提取了以下样本。而且我能够识别该对象。但我还需要找到我们那个物体的位置。例如:

var arr = [{
Id: 1,
Categories: [{
Id: 1
},
{
Id: 2
},
]

},
{
Id: 2,
Categories: [{
Id: 100
},
{
Id: 200
},
]

}
]

如果我想通过类别的 Id 查找对象,我可以使用以下方法:

var matches = [];
var needle = 100; // what to look for

arr.forEach(function(e) {
matches = matches.concat(e.Categories.filter(function(c) {
return (c.Id === needle);
}));
});

但是,我还需要知道对象在数组中的位置。例如,如果我们要查找 Id = 100 的对象,那么上面的代码会找到该对象,但是我如何找到它是主数组中的第二个对象,以及 Categories 数组中的第一个对象?

谢谢!

最佳答案

好吧,如果每个对象都是唯一的(仅在一个类别中),您可以简单地遍历所有对象。

var arr = [{
Id: 1,
Categories: [{Id: 1},{Id: 2}]
},
{
Id: 2,
Categories: [{Id: 100},{Id: 200}]
}
];

var needle = 100;

var i = 0;
var j = 0;

arr.forEach(function(c) {
c.Categories.forEach(function(e) {
if(e.Id === needle) {
console.log("Entry is in position " + i + " of the categories and in position " + j + " in its category.");
}
j++;
});
j = 0;
i++;
});

关于javascript - 在嵌套数组中查找对象及其位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52773339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com