javascript/typescript获取多维数组中复杂对象的索引
我想得到多维数组中复杂对象的完整索引。 例如,我有以下数组javascript/typescript获取多维数组中复杂对象的索引,javascript,typescript,Javascript,Typescript,我想得到多维数组中复杂对象的完整索引。 例如,我有以下数组 var arr = [ { name: "zero", children: null }, { name: "one", children: [ { name: "one_zero", children: [{ name: "one_zero_zero", children: null }] } ] } ]; 我想得
var arr = [
{
name: "zero", children: null
},
{
name: "one", children: [
{
name: "one_zero", children: [{ name: "one_zero_zero", children: null }]
}
]
}
];
我想得到一个名为“one_zero_zero”的对象。它应该是索引1\u 0\u 0
我希望你们能帮我解决这个问题
致以最良好的祝愿
var newarr =[];
var index = "";
function findmeinarr(s,arr){
for(let i in arr){
var name = "";
var flag = false;
name=arr[i].name
if(name==s){
index+=i;flag=true;
}
if(arr[i].children!=null){
newarr = arr[i].children;
index+=i+"-";
}
}
if(flag)console.log(index);
else findmeinarr(s,newarr);
}
以下是此操作的工作代码段:
我在这里使用递归调用。如果我能提供更多帮助,请告诉我。如果对您有效,请将其标记为解决方案。您做了哪些努力?
arr[1]['children'][0]['children'][0]['name']
edit:如果您想获取对象本身,只需删除最后一个索引即可。没有正确阅读整个问题。嗨,Sidhanshu,我同意你使用递归调用的方法。但是,如果我修改了数组,则答案不正确,或者函数导致以下错误“超出了最大调用堆栈大小”。如果它完全有效,我会将其标记为解决方案。无论如何,谢谢你的回答。您可以通过以下链接查看错误:嗨,我已经更新了代码,如果数组中没有value,它将返回value not found。。您好,恐怕在代码中添加一个else是不够的。当有孩子的时候,在“索引”中加上“i”也是不够的。如果找不到对象,则必须将其删除。请您投入更多的时间,因为这个问题并不像看起来那么简单。如果您有相同维度的数组,比如名称和子元素,那么无论您有多少子元素,代码都可以工作!如果数组变得复杂,我们可能需要找到其他解决方法!索引跟踪我们要去的路径,只有当我们找到那个名称时它才会返回,否则就不必担心了!您好,我通过添加输入文本修改了您的代码,以便您可以在浏览器中看到结果。但结果并不正确。我希望你能帮助我。链接是