Я пытаюсь рекурсивно перебирать вложенные объекты, чтобы получить ключ и значение.
Моя структура данных:
{
"id": 8743077530231325861,
"name": "Name of XYZ",
"key X": 0,
"key Y": {
"details": {
"value": {
"up": 5,
"down": 3
},
"path": "xyz"
},
"key Z": {
"value": 1,
"path": "abc"
}
},
"createdTimestamp": 1554446703000
}
и моя функция:
recursion = (item, keyString) => {
if(isObject(item)){
Object.keys(item).map((key) => {
return this.recursion(item[key], keyString+`.${key}`)
})
}else{
return {item, keyString}
}
}
и я называю это следующим образом:
Object.keys(data).map(key =>{
console.log(this.recursion(data[key], key))
})
Моя проблема в том, что ключи, которые являются объектами, всегда неопределены.Я знаю, это потому, что им нужно выполнять итерации в другое время, а вывод выполняется быстрее, чем функция.Когда я распечатываю значения в конце функции рекурсии вместо того, чтобы возвращать их, они не являются неопределенными.
В конце я хочу для каждого ключа все самые глубокие значения и «пути».Например,
8743077530231325861,"id"
Name of XYZ,"name"
0, "keyX"
5, "keyY.details.value.up"
...
Я уже пытался использовать await / async, но мне не удалось получить все значения
было бы неплохо, если бы у кого-то была подсказка для меня