Javascript数组推送不起作用
当我使用这行代码时: 对于var j=0;j res_cpu根本不会返回好的数据。它支持返回长度为30的null数组 以下是返回的值: 这是我的全部代码:Javascript数组推送不起作用,javascript,arrays,push,Javascript,Arrays,Push,当我使用这行代码时: 对于var j=0;j
var data_cpu = [];
var data_ram = [];
var totalPoints = 30;
// random data generator for plot charts
function getRandomData() {
if (data_cpu.length > 0 && data_ram.length > 0) {
data_cpu = data_cpu.slice(1);
data_ram = data_ram.slice(1);
data_cpu.push(50);
data_ram.push(50);
var res_ram = [];
var res_cpu = [];
for (var i = 0; i < data_ram.length; ++i) res_ram.push([i, data_ram[i]])
for (var i = 0; i < data_cpu.length; ++i) res_cpu.push([i, data_cpu[i]])
return [res_cpu, res_ram];
}else {
while (data_ram.length < totalPoints) {
data_ram.push(null);
}
while (data_cpu.length < totalPoints) {
data_cpu.push(null);
}
var res_cpu = [];
var res_ram = [];
for (var i = 0; i < data_cpu.length; ++i) {res_cpu.push([i, data_cpu[i]]);}
for (var j = 0; j < data_ram.length; ++j) {res_ram.push([j, data_ram[j]]);}
alert(res_cpu);
return [res_cpu,res_ram];
}
}
这会将一个数组推送到一个数组上,因此所有的逗号都会出现。看起来j是索引,你在寻找
res_ram[j] = data_ram[j];
或
如果您只是想克隆阵列,为什么不呢
var res_ram = data_ram.slice(0);
?您的代码工作正常,但警报不是查看结果的最佳方式。试试开发者控制台,或者Firebug 发出警报时,数组中的空值显示为空:
alert(['a',null,'b']) // -> a,,b
var res_ram = data_ram.slice(0);
alert(['a',null,'b']) // -> a,,b