将值循环为特定格式

时间:2013-07-26 13:10:28

标签: javascript arrays loops formatting

我正在尝试以格式填充数组。它是另一个库使用的特定格式,必须准确:

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]]

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]);删除不应该在这里的昏迷