I'我一直在把一个数组变成一个对象数组的问题

I'm stuck at turning an array into an array of objects issue

本文关键字:数组 一个 一个对象 问题 我一直在      更新时间:2023-09-26

所以我的数组看起来像这样:

var data = ["5/10/2014", 2, "5/10/2014", 5, "5/11/2014", 6....];

这个数组有上千个单元格,这并不重要,但我无论如何都会提到它。

我想把这个数组变成一个对象数组,看起来像这样:

var iWantToBelieve = [{Date:"5/10/2014", Score: 2}, {Date: 5/10/2014, Score:5}.....];

我觉得我快要解决这个问题了,但我的代码给了我最终的结果:

 var iWantToBelieve = [{Date:"5/10/2014", Score: "5/10/2014"}, {Date: 5/10/2014, Score: "5/10/2014"}.....]

我的代码如下:

 var data = ["5/10/2014", 2, "5/10/2014", 5, "5/11/2014", 6....];
 var init = [];
 var tempObject;
 for(var z = 0; z < data.length; z++){
     var tempArray = ["Date", "Score"];
     tempObject = {};
     for(var y = 0; y < tempArray.length; y++){
         tempObject[tempArray[y]] = data[z];
     }
     init.push(tempObject);
 }

我知道第二个for循环在第一个循环开始另一个迭代之前完成了2次迭代,所以Date和Score键都被日期字符串占用了。

感谢您的帮助。

您可以使用for并将itterator增加2。

var iWantToBelieve = []
for (var i = 0; i < data.length; i += 2) { // i = 0, 2, 4..
  iWantToBelieve.push({
      Date: data[i], // 1st value is the date
      Score: data[i + 1] // 2nd value is score
  });
}
var data = ["5/10/2014", 2, "5/10/2014", 5, "5/11/2014", 6]
var result = []
for (var j=0; j<data.length; j+=2)
  result.push({ Date: data[j], Score: data[j + 1]})
console.log(result)
var data = ["5/10/2014", 2, "5/10/2014", 5, "5/11/2014", 6];
var result = [];
while (data.length) result.push({Date: data.shift(), Score: data.shift()});
console.log(result);