Я пытаюсь разобрать следующие данные:Доступ к данным в структуре JS
data = [
{"id":"orderBy", "options" : [
{"value":"order-by=newest&", "name":"newest"},
{"value":"order-by=relevance&", "name":"relevance"}
]},
{"id":"searchBy", "options" : [
{"value":"search-by=name&", "name":"name"},
{"value":"search-by=number&", "name":"number"},
{"value":"search-by=date&", "name":"date"},
{"value":"search-by=location&", "name":"location"}
]}
];
Используя эти данные, я хочу, чтобы перебирать каждого объекта и возвращает его идентификатор, а затем все это варианты.
Я знаю, что нужно использовать цикл как это:
for (var i =0; i < data.length; i++) {
var id = data[i].id;
var optionText = data[i].options[i].text;
var optionValue = data[i].options[i].value;
console.log(id);
console.log(optionText);
console.log(optionValue);
}:
Этот цикл возвращает только первый OptionText & OptionValue из данных. Можете ли вы научить меня, что я делаю неправильно?
Спасибо.
Вы на правильном пути, вам просто нужно сделать еще один foreach для опций , прямо сейчас вы используете тот же 'i' из исходного цикла. –
Пара вещей: у вас нет JSON. JSON - это строковый формат, который необходимо проанализировать до его использования. У вас есть массив объектов. Вы также не разбираете его. Анализ (обычно) принимает что-то из строкового формата и помещает его в формат, используемый вашей программой. Что касается того, как получить нужные данные, вы, похоже, понимаете, как использовать циклы 'for' для прохождения первого уровня. Не могли бы вы использовать другой цикл 'for' для получения внутренних элементов? –
У вас нет текста с текстом внутри, но есть имя в объекте. –