У меня есть объект с вложенными массивами и объект, который выглядит следующим образом:
// Recursive nested objects & arrays:
var obj = {
children: [{
parentname: "level 0, Benny",
children: [{
parentname: "level 0.0, Stevey",
children: [{
parentname: "level 0.0.0, Betty",
children: []
},
{
parentname: "level 0.0.1, AFGNCAAP",
children: [{
parentname: "level 0.0.1.0, Moonman",
children: []
}]
}
]
},
{
parentname: "level 0.1, Oreo",
children: []
}
]
},
{
parentname: "level 1, Jupiter",
children: []
}
]
};
// I am able to retrieve values with various length formulas:
console.log(obj.children[0].parentname); // level 0, Benny
console.log(obj.children[0].children[0].parentname); // level 0.0, Stevey
console.log(obj.children[0].children[0].children[0].parentname); // level 0.0.0, Betty
console.log(obj.children[0].children[0].children[1].parentname); // level 0.0.1, AFGNCAAP
console.log(obj.children[0].children[0].children[1].children[0].parentname); // level 0.0.1.0, Moonman
console.log(obj.children[0].children[1].parentname); // level 0.1, Oreo
console.log(obj.children[1].parentname); // level 1, Jupiter
// And I able to reduce formulas into functions...per level of nesting, example 1 level:
function getNameWorking1(name, level) {
console.log(obj[name][level].parentname);
}
getNameWorking1(["children"], [1]) // level 1, Jupiter
// And example 2 levels:
function getNameWorking2(name, level) {
console.log(obj[name][level[0]][name][level[1]].parentname);
}
getNameWorking2(["children"], [
[0],
[1]
]) // level 0.1, Oreo
// I am trying to create a single function that I can send a parameter with the sequence of property name & array values. This does not work:
function getNameNotWorking(parameter) {
console.log(obj[parameter].parentname);
}
getNameNotWorking("[children][1]");
getNameNotWorking("[children][0][children][1]");
Я пытаюсь создать одну функцию, в которую я могу отправить параметр с последовательностью имени свойства и значений массива.Эта последняя функция не работает.Любая помощь о том, как это сделать?
Кстати.У меня есть рекурсивная функция, которая работает для этого.Но он работает каждый раз, начиная с самого начала и просматривая каждый вложенный объект и массив, пока не будет найден искомый элемент.Кажется, что это может быть чрезмерно делать многократно.Поэтому я ищу метод для поиска объекта, когда я уже знаю его местоположение - через все значения дочернего массива.