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