#javascript #object
#javascript #объект
Вопрос:
Я пытаюсь создать приложение для флэш-карт, чтобы попытаться упростить данные. Я думаю, что это не очень сложное сомнение, но я не могу найти ответ от Google.
- Я хочу, чтобы из вложенного словаря отображались только URL-адрес ключа и значение
- Я хочу отобразить маршрут в виде карты со стрелками, например:
abcd->cd->d->url:value
мои данные, например:
abcd = {
"ab": {
"a": {
"country": "",
"url": ""
},
"b": {
"country": "",
"url": ""
}
},
"cd": {
"c": {
"country": "",
"url": ""
},
"d": {
"country": "",
"url": "value"
}
}
Комментарии:
1. Что вы пробовали до сих пор?
2. Я не уверен, с чего начать. Я знаю об object.keys(), но я не могу понять, как его применить…
3. к вложенным словарям
4. Object.keys вернет вам массив ключей «ab», «cd»… -> затем вы можете выполнить forEach для перебора ключей и выполнить ту же логику с вложенными ключами
5. Я не уверен, как я могу выполнить рекурсию с помощью forEach() для многих уровней вложенности, и я не уверен, даже если я смогу выполнить рекурсию, как назначить требуемый вывод переменной в виде строки.
Ответ №1:
Вы можете использовать приведенный ниже код, который работает только для этого объекта…
Обратите внимание, что есть много лучших способов, которыми вы можете подойти к этому .. это достаточно простой
let abcd = {
"ab": {
"a": {
"country": "",
"url": "fff"
},
"b": {
"country": "",
"url": "fff"
}
},
"cd": {
"c": {
"country": "",
"url": "ddd"
},
"d": {
"country": "",
"url": "value"
}
}
}
function getKeyValue(obj){
const result = []
for(let prop in obj){
if(typeof obj[prop] === "object"){
for(let pr in obj[prop]){
result.push(`${prop}->${pr}->url->${obj[prop][pr].url }`)
}
}
}
return result
}
console.log(getKeyValue(abcd))
Комментарии:
1. Мне было интересно рекурсивное решение, потому что я не могу использовать только 4 уровня вложенности… Я не знаю, как назначить много имен переменных… единственное, что я могу придумать, это присвоить переменной значение: for(пусть i=0;i<*я не знаю, как это найти *;i ){пусть a i= имя отдельного ключа}