Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2018, 11:05
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Как правильнее заполнить массив?
Добрый день. Есть функция которая получает 2 массива данных и передает их в функцию:
function getArray (){
    var array = [];
    var a = $.getJSON( "url1", function(dataArr) {
        array['a'] = dataArr;
    });
    var b = $.getJSON( "url2", function(dataArr2) {
        array['b'] = dataArr2;
    });
    $.when(a, b).then(function() {
        createArray(array['a'], array['b']);
    });
}

Как правильно передать их в функцию? так как сверху или вот так:
function getArray (){
    var array = [];
    var a = $.getJSON( "url1", function(dataArr) {
        array.push(dataArr);
    });
    var b = $.getJSON( "url2", function(dataArr2) {
        array.push(dataArr2);
    });
    $.when(a, b).then(function() {
        createArray(array[0], array[1]);
    });
}


Я боюсь что при 2ом варианте может перепутаться местами array[0] и array[1].
А так записать дает ошибку:
array[0].push(dataArr);
array[1].push(dataArr2);


Если первый вариант логически правильный, и не может вызвать ошибку я его оставлю.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2018, 11:36
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Artur_Hopf
так записать дает ошибку:
array[0].push(dataArr);
array[1].push(dataArr2);
.push добавляет новый элемент в конец имеющегося массива.
Сообщение от Artur_Hopf
при 2ом варианте может перепутаться местами array[0] и array[1]
Поскольку время выполнения запросов getJSON может быть различным, то это весьма вероятно.

Присвоение значений конкретным элементам делается обычным образом:
array[0] = dataArr;
array[1] = dataArr2;

Последний раз редактировалось Dilettante_Pro, 29.08.2018 в 11:42.
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2018, 13:05
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Dilettante_Pro,
Буду знать, спасибо, сделал так=):
$.when($.getJSON('url1'), $.getJSON('url2')).done(function(a1, a2) {
        createArray(a1[0], a2[0]);
    });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить из строки массив? optron Общие вопросы Javascript 1 28.01.2015 06:21
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
XMLHttpRequest как с php передать массив на яваскрипт? wadim Общие вопросы Javascript 3 16.03.2014 14:05
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как удалить массив? SunYang Общие вопросы Javascript 14 05.02.2010 14:31