Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript/typescript获取多维数组中复杂对象的索引_Javascript_Typescript - Fatal编程技术网

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”也是不够的。如果找不到对象,则必须将其删除。请您投入更多的时间,因为这个问题并不像看起来那么简单。如果您有相同维度的数组,比如名称和子元素,那么无论您有多少子元素,代码都可以工作!如果数组变得复杂,我们可能需要找到其他解决方法!索引跟踪我们要去的路径,只有当我们找到那个名称时它才会返回,否则就不必担心了!您好,我通过添加输入文本修改了您的代码,以便您可以在浏览器中看到结果。但结果并不正确。我希望你能帮助我。链接是