@Timon1221

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

Не сильно соображаю в JS. Есть многомерный массив data, полученный через ajax запрос, примерно такой.
{
"set": {
        "items": [
            {
                "path": "path",
                "type": "file",
                "name": "office.doc",
                "size": 278982
            },
            {
                "name": "1.JPG",
                "path": "path",
                "type": "file",
                "size": 896772
            }
        ],
        "total": 2
},
"type": "dir"
}

Через цикл пытаюсь достать, например name
for(var i = 0; i < total; i++) {
    var name = data['set']['items'][i]['name'];

}

Если в цикле прописать console.log(name);, то в консоли он выдаст все как нужно, по очереди, но я пытаюсь это вставлять в таблицу, через такое
$('tbody#parent>tr:gt(0)>td:nth-child(3)').text(name);

А в таблицу, во все строки, вставляется только последнее значение массива
1.JPG
1.JPG
1.JPG
Не знаю как еще более понятно объяснить
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вам надо перебирать все строки таблицы и для каждой вставлять соответствующее значение. Сейчас вы каждое значение вставляете во все строки таблицы разом.
$('tbody#parent>tr:gt(0)>td:nth-child(3)').each(function(index) {
  $(this).text(data['set']['items'][index]['name']);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kudis
Bitrix developer
Так случилось, что в JS нет многомерных массивов - это объект
бегать по нему удобнее через ключи
var keys = Object.keys(arCartElements);
keys.forEach(function(elementId) {
    var element = arCartElements[elementId];
    console.log(element);
});

для бесконечной вложности использую рекурсивный обход
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы