@HTML_noob2

Как вывести данные из многомерного словаря?

Преобразовал qs в словарь с структурированными данными: страна/город/округ, но столкнулся с проблемой вывода этого на страничку. Данные выглядят следующим образом:
{'большой 1': {'средний 1 1': ['маленький 1 1 1', 'маленький 1 1 2'], 'средний 1 2': ['маленький 1 2 1']}, 'большой 2': {'средний 2 1': ['маленький  2 1 1', 'маленький 2 1 2', 'маленький 2 1 3']}}

При многократном использовании "for-endfor" обрабатываются буквы, а не сами данные.. Как передать значение во второй "for" или каким образом лучше действовать с подобными данными?

В теории хотелось бы добиться этого результата:
большой 1: 
          средний 1 1: 
                    маленький 1 1 1
                    маленький 1 1 2
          средний 1 2: 
                    маленький 1 2 1
большой 2: 
          средний 2 1: 
                    маленький  2 1 1
                    маленький 2 1 2'
                    маленький 2 1 3'
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Тут нужна рекурсивная функция
Например, так:
function print(a, offset=0){
 let out="";
 let offsetText = "\t".repeat(offset);
 
 if (Array.isArray(a)){
  for(x in a){
   out+=`\n${offsetText}${a[x]}`;
  };
 }else{
  for(x in a){
   out += `\n${offsetText}${x}:`;
   out += print(a[x], offset+1);
  };  
 }; 
 return out;
};

Результат:

/*
console.log(print(a))
большой 1:
	средний 1 1:
		маленький 1 1 1
		маленький 1 1 2
	средний 1 2:
		маленький 1 2 1
большой 2:
	средний 2 1:
		маленький  2 1 1
		маленький 2 1 2
		маленький 2 1 3
*/

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы