Javascript数组推送不起作用

Javascript数组推送不起作用,javascript,arrays,push,Javascript,Arrays,Push,当我使用这行代码时: 对于var j=0;j

当我使用这行代码时:

对于var j=0;j res_cpu根本不会返回好的数据。它支持返回长度为30的null数组

以下是返回的值:

这是我的全部代码:

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