Situation
- I have an nested Array and I have a ID to search for. Like "A_02_02_01_03"
- Every Element in an array has a element called "children", that is a array
- My method gets pretty long when I'm searching in the 4th Layer.
Example Array
var tree= [
{
"name": "i2",
"children": [
{
"name": "d1",
"children": [],
"id": "DW_02_01",
"beschreibung": "",
"table": []
},
{
"name": "d2",
"children": [
{
"name": "e1",
"children": [
{
"name": "a1",
"children": [],
"id": "A_02_02_01_01",
"beschreibung": "",
"table": []
},
{
"name": "a2",
"children": [],
"id": "A_02_02_01_02",
"beschreibung": "",
"table": []
},
{
"name": "a3",
"children": [],
"id": "A_02_02_01_03",
"beschreibung": "",
"table": []
}`enter code here`
],
"id": "E_02_02_01",
"beschreibung": "",
"table": []
},
{
"name": "e2",
"children": [],
"id": "E_02_02_02",
"beschreibung": "",
"table": []
}
],
"id": "DW_02_02",
"beschreibung": "",
"table": []
},
{
"name": "d3",
"children": [],
"id": "DW_02_03",
"beschreibung": "",
"table": []
}
],
"id": "IW_02",
"beschreibung": "",
"table": []
},
{
"name": "i3",
"children": [],
"id": "IW_03",
"beschreibung": "",
"table": []
}
]
Constructing IDs
var daIW = "IW_02";
var daDW = "DW_02_02;
var daE = "E_02_02_01;
var daA = "A_02_02_01_03";
Getting all my indices
var iw_index = tree.findIndex(element => element.id == daIW);
var dw_index = tree[iw_index]["children"].findIndex(element => element.id == daDW);
var e_index = tree[iw_index]["children"][dw_index]["children"].findIndex(element => element.id == daE);
var a_index = tree[iw_index]["children"][dw_index]["children"][e_index]["children"].findIndex(element => element.id == daA);
Accessing my Element
var elementName = tree[iw_index]["children"][dw_index]["children"][e_index]["children"][a_index].name;
Question
Is there a shorter way for accessing the deepest Element "A_02_02_01_03" then searching for every index?