Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/56: Рейтинг темы: голосов - 56, средняя оценка - 4.79
1 / 1 / 3
Регистрация: 21.03.2016
Сообщений: 400

Перебрать в цикле json объект

26.11.2018, 22:20. Показов 11273. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребят!
не получается в цикле перебрать весь json объект.
Подскажите как правильно написать цикл чтобы:
1. выводилось значение question
2. также в цикле выводились значения всех массивов ключа answers:
а именно к примеру ["Шархан", "fulse", "level3", "answer8"] выводилсь только индекс "0" ("Шархан") и т.д
я столько раз пытался не выходит...
вот сам объект
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
    "level1" : {
            "question": "Имя первой собаки Имя первой собаки",
            "answers": [
                            ["Шархан", "fulse", "level1", "answer1"],
                            ["Алиса", "true", "level1", "answer2"],
                            ["Изабелла", "fulse", "level1", "answer3"]
                        ]
    },
    "level2":{
            "question": "Имя второй  собаки",
            "answers": [
                            ["Шархан", "true", "level2", "answer4"],
                            ["Алиса", "fulse", "level2", "answer5"],
                            ["Изабелла", "fulse", "level2", "answer6"],
                            ["Надя", "fulse", "level2", "answer7"]
                        ]
    },
    "level3":{
            "question": "Имя третьей  собаки",
            "answers": [
                            ["Шархан", "fulse", "level3", "answer8"],
                            ["Изабелла", "true", "level3", "answer9"],
                            ["Надя", "fulse", "level3", "answer10"]
                        ]
    },
    "level4":{
            "question": "Имя моей девочки",
            "answers": [
                            ["Рита", "true", "level4", "answer11"],
                            ["Надя", "fulse", "level4", "answer12"]
                        ]
    },
    "level5":{
            "question": "Фамилия моей девочки",
            "answers": [
                            ["Дорохова", "true", "level5", "answer13"],
                            ["Сидорова", "fulse", "level5", "answer14"],
                            ["Петрова", "fulse", "level5", "answer15"]
                        ]
    }
}
У меня вышло только вывести значения question:
JavaScript
1
2
3
4
5
6
for (let key in obj) {
        divTitle.innerHTML = obj[key].lavel;
        
// а вот как дальше переберать не знаю
        
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2018, 22:20
Ответы с готовыми решениями:

Как перебрать объект в цикле?
Добрый вечер!Получаю ajax запросом объект,хочу его перебрать циклом и вывести все сообщения,но почему-то я не могу перебрать циклом...

Перебрать textBox в цикле
У меня на форме есть 25 элементов textBox с именами textBox1, textbox2, textbox3 и т.д. Возможно ли через цикл присвоить каждому...

перебрать JSON файл
Добрый день :) { "file1":{"name":"a","Size":"1" ,"Create":"1.1.1601-0:0:0" ,"Update":"29.10.2019-17:52:0"} } У меня есть...

4
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
26.11.2018, 23:36
Лучший ответ Сообщение было отмечено Евгений 86 как решение

Решение

Евгений 86, у Вас ошибка синтаксическая в объекте, вместо "false" - "fulse". Если эти значения, будут присваиваться каким-то атрибутам элементов например или участвовать в формировании условий if\while\for\?, будут ошибки уже в логике скрипта. Но это я так на всякий случай.
Теперь к сути - https://codepen.io/qwerty_wasd/pen/xQJdwb
JavaScript
1
2
3
4
5
6
/*1. выводилось значение question*/
Object.values(jsonObj).forEach(e => console.log(Object.values(e)[0]));
 
/*также в цикле выводились значения всех массивов ключа answers:
а именно к примеру ["Шархан", "fulse", "level3", "answer8"] выводилсь только индекс "0" ("Шархан") и т.д*/
Object.values(jsonObj).forEach(e => Object.values(e)[1].join`,`.split`,`.forEach(el => console.log(el)));
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
27.11.2018, 09:19
Лучший ответ Сообщение было отмечено Евгений 86 как решение

Решение

Насколько понимаю, два примера надо вывести в два <div>
HTML5
1
2
    <div id="first"></div>
    <div id="second"></div>
Если нужно во втором примере ответы на выбор соотносить с вопросом, то логичен вложенный цикл:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        let divTitle = document.getElementById("first"),
            divAnswers = document.getElementById("second"),
            s = s2 = "";
 
        // 1. выводилось значение question
        for (let level in jsonObj)
            s += jsonObj[level]["question"] + "<br/>";
        divTitle.innerHTML = s;
 
        // 2. также в цикле выводились значения всех массивов ключа answers:
        for (let level in jsonObj) {
            s2 += jsonObj[level]["question"] + ":<br/>"; // Вопрос
            for (answer of jsonObj[level]["answers"])    // Список ответов
                s2 += answer[0] + "<br/>";
        }
        divAnswers.innerHTML = s2;
1
1 / 1 / 3
Регистрация: 21.03.2016
Сообщений: 400
27.11.2018, 10:58  [ТС]
Спасибо ребят! сегодня попробую использовать код
0
1 / 1 / 3
Регистрация: 21.03.2016
Сообщений: 400
28.11.2018, 09:26  [ТС]
amr-now, воспользовался Вашим циклом, чуток изменив. Вопрос решен спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2018, 09:26
Помогаю со студенческими работами здесь

два массива в цикле перебрать
Ребятки помогите с циклом, как перебрать два массива, сколько значений в массиве может быть я не знаю до 50 гдето, с одного берется...

Перебрать в цикле экземпляры класса
Имеется класс &quot;shar&quot;. Имеется список List &lt;shar&gt; ballList с экземплярами этого класса. Необходимо перебрать в цикле эти экземпляры. Раньше...

Перебрать в цикле массив $_POST
Доброго времени суток. Что-то туплю, как перебрать массив $_POST в цикле, если не известен ни первый, ни последний элемент этого массива?...

Перебрать в цикле все CheckBox-ы
Как перебрать в цикле все CheckBoxs что есть на форме и установить им свойства или получить значения

Как перебрать словари Dictionary в цикле?
Добрый день. В программе имеется несколько десятков словарей (с одинаковыми ключами) типа: Dictionary&lt;string, int&gt; и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru