Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 当知道关键点时遍历对象_Javascript_Loops_Object_Reactjs - Fatal编程技术网

Javascript 当知道关键点时遍历对象

Javascript 当知道关键点时遍历对象,javascript,loops,object,reactjs,Javascript,Loops,Object,Reactjs,我有反对意见 var routes = { "home":{ hash: "/home", children: { "just-home": { hash: "/home/just-home", children: {...} }, "sub-homea": { hash: "/home/sub-homea", children:

我有反对意见

var routes = {
  "home":{
    hash: "/home",
    children: {
       "just-home": {
            hash: "/home/just-home",
            children: {...}
        },
        "sub-homea": {
             hash: "/home/sub-homea",
             children: {...}
    }
  },
"contact":{
    hash: "/contact",
    children: {
       "just-contact": {
            hash: "/contact/just-contact",
            children: {...}
        },
        "sub-contact": {
             hash: "/contact/sub-contact",
             children: {...}
    }
  }
}
例如,当我知道第一个键是contact,下一个键是contat时,如何将object设置为just contact.children?我需要动态地分配这个对象,因为已知的键会一直不同。所以我需要使用任何循环。像这样的-

const pathArray = [contact,just-contact]
Object.keys(routes).map(function (item) {
              if (routes[item] === pathArray[counter]){
                  ob = routes[item];
                  counter++;
              }
            })
但这只会循环一次,不会深入

更新以获得更清晰的解释-

我将从路径位置(localhost:3000/contact/just contact)读取值(contact,just contact),并将其保存到数组中(
pathArray=[contact,just contact]
),当位置路径更改时,数组中的键也将更改。我需要找到最后一个键的子项,在这个例子中,
的子项只需联系

就可以找到简单的解决方案-

pathArray.map(function (item) {
      if (obj[item].hash === item){
             obj = obj[item].children;
      }
})

问题还不清楚。你说钥匙是已知的(“我知道第一把钥匙是触点…”),但你也说钥匙是未知的(“已知的钥匙会一直不同”)。是哪一个?A会有帮助的。请试着更好地解释这个问题,纠正你的答案非常困难。什么是困难的?我只需要找到对象内部的对象,当我知道键时。(路径)不,“已知”是正确的。不正确的是,你说在一个地方钥匙是已知的,而在另一个地方钥匙总是不同的。是哪一个?它们是已知的,所以我们可以硬编码它们,或者不同的运行,所以我们必须在运行时发现它们?我想说的是,密钥将一直是已知的(密钥将保存在数组中)。但它们可以一直不同。