gpt4 book ai didi

javascript - 在二维数组中查找索引

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

如果我有一个包含对象的数组,其中每个对象都有一个 id 属性,我可以使用以下方法找到一个索引:

data.findIndex(x=>x.id === newData.id);

但是如果数据是一个对象数组呢?有没有一种很好的方法来获取这个数据结构的两个索引?所以 data.findIndex 会以某种方便的形式返回 ij

最佳答案

如果 findIndex 是值数组,您可以在 Array.includes 中使用。

var data = [
[1,2,3],
[4,5,6],
[7,8,9]
]
var searchParam = 8;
var index = data.findIndex(x=>x.includes(searchParam))
console.log(index)

如果它是更高级数组的对象数组,则可以使用递归。

var data = [
[{id: 1},{id: 2},{id: 3}],
[{id: 4},{id: 5},{id: 6}],
[{id: 7},{id: 8},{id: 9}]
]
var searchValue = 8;
var index = data.findIndex(x=>{
return searchInObject(x, searchValue);
})

function searchInObject(obj, searchValue){
var _s = JSON.stringify(obj);
if(_s.indexOf(searchValue)>-1){
if(Array.isArray(obj)){
return obj.some(function(o){
if(searchInObject(o, searchValue)) return true;
});
}
else if(typeof(obj) === 'object'){
for(var k in obj){
if(searchInObject(obj[k], searchValue)) return true;
}
}
else{
if(obj === searchValue) return true;
}
}
}
console.log(index)

关于javascript - 在二维数组中查找索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259585/

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