0

есть массив filesArr которые содержит в себе элементы по порядку. введите сюда описание изображения

Как достать из первого уровня, названия, которые хранятся под нулевым ключем? Например как recomendation?

Пробовал вот такие образом:

$(filesArr).each(function(i, item){
        console.log(item[0]);
});

но выдает undefined

извините за скрины, не получилось, воспроизвести подобный массив.

i это счетчик отправляемых файлов

таким образом данные отправляю и принимаю с сервера

        $.ajax({
            type: "POST",
            url: "/poc/"+controller,
            data: formData,
            processData: false,
            contentType: false,
            success: function(response){
//после каждой загрузки файла response ={"file_name":"1a80c8b71a346814915a7d185c604067.png","input_name":"recommendation[1]"}
                var result = $.parseJSON(response);
                var clearInput_name = result.input_name.replace(/\[(\d+)\]/, '');
                var clearInput_name_num = parseInt(result.input_name.match(/\d+/));
                filesArr[i].push(clearInput_name);
                filesArr[i].push(result.file_name);
                filesArr[i].push(clearInput_name_num);
            }
engenes
  • 1,963
  • 2
  • 30
  • 67
  • Но вы можете этот массив вручную создать и добавить в код вопроса (заодно и полноценный сниппет получится). Иначе создавать массив придётся отвечающему, что совсем не здорово. – Regent Jul 31 '18 at 07:05
  • А вообще, кстати, несмотря на крайне спорное использование jQuery здесь, код выглядит рабочим. Может, у вас внутренние массивы позже (вывода) заполняются? – Regent Jul 31 '18 at 07:08
  • Regent, если не использую, то each не распознает, выводит сообщение что такой функции нет, может быть это связано что массив приходит с сервера? и когда я пытаюсь его парсить он еще не сформирован? – engenes Jul 31 '18 at 07:11
  • @ЕвгенийШевцов приложите тогда весь код, и тот где вы получаете этот массив – ThisMan Jul 31 '18 at 07:23
  • @ЕвгенийШевцов в jQuery - .each(function(index, value, в самом JS - .forEach(function(value, index. С обработкой асинхронного ответа от сервера ошибка весьма распространена, но чтобы сказать наверняка, нужно увидеть ваш код получения ответа и как он связан с представленным в вопросе кодом. – Regent Jul 31 '18 at 07:44
  • @ThisMan "приложите весь код" - рискованное заявление. Хотелось бы вместо тонны кода минимального воспроизводимого примера. – Regent Jul 31 '18 at 07:45
  • @Regent согласен, скорее всего здесь вопрос в асинхронности, ибо видно, что изначально все массивы в массиве имеют 0 элементов, а затем мутируют. – Diskyp Jul 31 '18 at 07:47
  • @Regent, да дело было в том что данные приходят асинхронно, не подскажите как обойти? как отследить кода данные получены? сейчас перебор засунул в setTimeout в ajax использую success, думал этого достаточно – engenes Jul 31 '18 at 08:06
  • @ЕвгенийШевцов есть специальный вопрос-справка, там подробно расписано что с этим всем можно сделать – Regent Jul 31 '18 at 08:48

1 Answers1

2
filesArr.forEach(function(item){
    console.log(item[0]);
});
Gs D
  • 935