web-dev-qa-db-ja.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

product [0] = [1,2,3,4];

product [1] = [a、b、x、z];

product [10] = [extra、extra、extra、extra];

ページをロードすると、これが実行されます:product= [[],[],[],[],[],[],[],[],[],[]];

しかし、これを宣言すると、ajaxを呼び出すときに 押す この配列(10行)にのみデータを追加します。11行(product[10][0]およびproduct[10][1])、余分なデータは追加されません。 ajax呼び出しの後、追加のデータが必要です:product= [[],[],[],[],[],[],[],[],[],[],**[11]**];

この関数は、phpファイルからajaxデータを読み込んだ後に、データを配列に入れたいからです。

$('#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
3
fedmich

JavaScriptで空の配列を宣言するために使用される次のコード

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

console.log(product_arr);
1
Vijay