我正在尝试以格式填充数组。它是另一个库使用的特定格式,必须准确:
var d1 = [[1,3], [2,7], [3,5], [4,6], [5,5]];
我有一个我想用于'y'值的数据库。如何使用循环将值转换为此特定格式?类似的东西(但不是这个,因为这不起作用): var x,y,d1 = []; for(i = 0; i
感谢任何想法。
修改 的
在接受你的建议后,我正确地初始化了数组并将i ++更改为i + 1。现在,如果我使用console.log(d1);
我明白了:
[Array[2], Array[2], Array[2]]
答案 0 :(得分:2)
只需启动d1
数组即可,如果您删除了谬误,
,您的代码也可以正常运行。您还要将i
两次递增,每次循环迭代一次,一次将其分配给x
var x, y, d1 = [];//assign empty array
for (i=0; i<array.length; i++)//leave this increment as is
{
x= i+1;//don't increment i, just assign i + 1
y=array[i];
d1.push([x, y]);//<== remove ,
}
如果没有将空数组分配给d1
,则语句d1.push([x,y]);
会转换为:undefined.push([x,y])
,当然这是错误的。
你也没有声明i
,所以它可能是隐含的全球,所以添加
var x, y, i, d1 = [];
要查看实际输出,而不是使用console.log(d1.toString)
,这将使数组变平,请使用
console.log(d1);
//or to get a string:
console.log(JSON.stringify(d1));
答案 1 :(得分:2)
var x = 0, y = 0, d1 = [];
for (i=0; i<array.length; i++){
x= i+1;
y=array[i];
d1.push([x, y]);
}
var x = 0, y = 0, d1 = [];
将d1
初始化为数组
x= i+1;
否则你将增加i的值并且你的循环不会很好(每次迭代增加2)
d1.push([x, y]);
删除不应该在这里的昏迷