【问题标题】:Declare empty array in javascript在javascript中声明空数组
【发布时间】:2015-05-29 00:56:21
【问题描述】:

更新

我的代码有效。页面加载时

    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]=[a,b,x,z];

.

.

产品[10]=[额外,额外,额外,额外];

当我加载页面时执行:product= [[],[],[],[],[],[],[],[],[],[]];

但如果我声明了这一点,当我调用 ajax 时,我可以 push 仅将数据添加到这个数组(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
});


}

【问题讨论】:

  • 为什么要预先分配/维度?根据需要在循环中创建一个基本的空数组=[]; 然后.push
  • 我在 ajax 调用后更改了数据。我第一次有 2 行数据。调用后可以有 10 行。
  • @user3944364 发布你的ajax调用代码

标签: javascript jquery arrays ajax eval


【解决方案1】:

在您的 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
});

【讨论】:

  • 我想重写数组。我认为我的功能与这条线产品有误 product[i][lk]=lilk; .马贝积[i]=[var,var,var,var];是对的。我需要重新考虑循环
  • @user3944364 我在回答中添加了另一种方式。
  • Works $('#contextreload ul').each(function(i, ul) { product.push([]); });谢谢
【解决方案2】:

注意:这行代码生成的是字符串,而不是数组。

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

你需要的是类似的东西

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

【讨论】:

  • {} 定义一个对象而不是一个数组。 []更合适
  • 没错 R3tep。这就是我在第二行的意思
【解决方案3】:

以下代码用于在javascript中声明空数组

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

console.log(product_arr);

【讨论】:

    【解决方案4】:
    var product = [];
    

    是我个人一直在寻找的答案

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      相关资源
      最近更新 更多