在javascript中声明空数组
Posted
技术标签:
【中文标题】在javascript中声明空数组【英文标题】:Declare empty array in 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调用代码
【参考方案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 = [];
是我个人一直在寻找的答案
【讨论】:
以上是关于在javascript中声明空数组的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 各声明varletconst方式区别『详解』