0

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

var d1 = [[1,3], [2,7], [3,5], [4,6], [5,5]];

我有一个要用于“y”值的数据库。如何使用循环将值转换为这种特定格式?与此类似的东西(但不是这个,因为这不起作用): var x, y, d1 =[]; 对于 (i=0; 我

任何想法表示赞赏。

编辑

在听取您的建议后,我正确初始化了数组并将 i++ 更改为 i+1。现在如果我使用console.log(d1);

我明白了:

[Array[2], Array[2], Array[2]]
4

2 回答 2

2

只需启动d1一个数组,如果您也删除 falty ,,您的代码应该可以工作。您还增加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));
于 2013-07-26T13:14:00.663 回答
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]);删除不应该在这里的 coma

于 2013-07-26T13:16:10.017 回答