-1

当我使用这行代码时:

for (var j = 0; j < data_ram.length; ++j) {res_ram.push([j, data_ram[j]]);}

res_cpu 根本没有返回好的数据。它支持返回一个空数组(长度为 30)。

这是返回值:

问题(错误值)

这是我的完整代码:

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];
    }
}
4

2 回答 2

2
res_ram.push([j, data_ram[j]]);

这会将数组推送到数组上,因此所有逗号。看起来j是您正在寻找的索引

res_ram[j] = data_ram[j];

或者

res_ram.push(data_ram[j]);

如果您只是想克隆阵列,为什么不呢?

var res_ram = data_ram.slice(0);

?

于 2013-09-12T15:54:20.180 回答
2

您的代码可以正常工作,但警报并不是查看结果的最佳方式。尝试开发者控制台或 Firebug。

警告时,数组中的 Null 值显示为空:

alert(['a',null,'b']) // -> a,,b
于 2013-09-12T15:54:35.043 回答