Javascript,将两个数组合并为一种格式

时间:2015-09-24 18:46:01

标签: javascript json

是否可以将两个数组转换为特定格式,因为我需要特定的格式来创建我的D3图。

实际上,我拥有的是这两个阵列,

date = ["sept,09 2015","sept, 10 2015","sept, 11 2015"]
likes = [2,4,5]

我希望变成这种格式

[{ date: '...', likes: '...'},
 { date: '...', likes: '...'}]

3 个答案:

答案 0 :(得分:2)

您可以通过简单的方式完成:

date = ["sept,09 2015","sept, 10 2015","sept, 11 2015"];
likes = [2,4,5];
final = [];

if (date.length == likes.length)
  for (i = 0; i < dates.length; i++)
    final.push({
      date: dates[i],
      likes: likes[i]
    });

另外,检查它们是否具有相同的大小,以确保它不应该超出数据索引范围。

答案 1 :(得分:1)

一种方法是使用简单的for循环。

var result = [];
for (var i = 0, len = date.length; i < len; i++) {
  result.push({
    date: date[i],
    likes: likes[i]
  });
}

请注意,这仅适用于阵列长度相同的情况。如果它们不是,你仍然可以通过取两个长度中的最小值来获得最大值。

var result = [];
var length = Math.min(date.length, likes.length);
for (var i = 0; i < length; i++) {
  result.push({
    date: date[i],
    like: likes[i]
  });
}

答案 2 :(得分:1)

假设它们具有相同的长度,您可以使用Array.prototype.map()

var newArr = likes.map(function(item, index){
   return { date: dates[index], like: item };
});