it-roy-ru.com

Объявите пустой массив в JavaScript

Обновление  

Мой код, который работает. Когда страница загружена

    product= [[],[]]; 

затем код, выполняемый после вызова ajax: 

$('#contextreload ul').each(function(i, ul) {
product.Push([]);
});

$('#contextreload ul').each(function(i, ul) {
  allline=i; 
  $('#reloadajax'+i+' li').each(function(lk, li) {
  var lilk = $(li).html();  product[i][lk]=lilk;

  // your code goes here
 });

  // your code goes here
});

Использовать eval (); в ответ ajax для этого, с некоторыми изменениями в файле php? /endupdate

продукт [0] = [1,2,3,4];

продукт [1] = [а, Ь, х, г];

,.

,.

продукт [10] = [экстра, экстра, экстра, экстра];

Когда я загружаю страницу, это выполняется: product= [[],[],[],[],[],[],[],[],[],[]]; 

Но если я заявляю об этом, когда я называю AJAX, я могу От себя добавить данные только в этот массив (10 строк) Если у меня 11 строк (product[10][0] и product[10][1]), дополнительные данные не будут добавлены . После вызова ajax мне нужны дополнительные данные : product= [[],[],[],[],[],[],[],[],[],[],**[11]**];

Эта функция потому, что я хочу поместить данные в массив после загрузки данных ajax из php-файла.

$('#contextreload ul').each(function(i, ul) {
 <strike> var product = $(ul).html();  </strike>
    allline = i; 

    $('#reloadajax'+i+' li').each(function(lk, li) {
        var lilk = $(li).html();  
        product[i][lk]=lilk;
        alert(lilk+lk);
        // your code goes here
    });
    // your code goes here
});


}
6
user3944364

В результате вашего вызова ajax используйте функцию Push()

product.Push([]);

Это добавляет массив в последнем индексе product. Таким образом, индекс 10 создан, и у вас есть дополнительные данные. 

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

var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
    product.Push([]);

По-другому 

В вашем ajax-возвращении сохраните новую длину вашего массива product в глобальной переменной . И используйте его перед циклом, чтобы сбросить массив и инициализировать его новой длиной.

var lengthArray = 10; // update the value in the callback of your ajax call

И твой цикл:

var product = [];
for(; lengthArray--;)
    product.Push([]);

$('#contextreload ul').each(function(i, ul) {
    //<strike> var product = $(ul).html();  </strike>
    allline = i; 

    $('#reloadajax'+i+' li').each(function(lk, li) {
        var lilk = $(li).html();  
        product[i][lk]=lilk;
        alert(lilk+lk);
        // your code goes here
    });
    // your code goes here
});
6
R3tep

Примечание: эта строка вашего кода создает строку, а не массив.

var product = $(ul).html();  //returns string not an array

то, что вам нужно, это что-то вроде

var product_arr = {}; // an object or 
var product_arr = []; // an array
2
fedmich

Следующий код, используемый для объявления пустого массива в JavaScript

var product_arr = new Array(); //declaring empty array

console.log(product_arr);

1
Vijay