是否可以将两个数组转换为特定格式,因为我需要特定的格式来创建我的D3图。
实际上,我拥有的是这两个阵列,
date = ["sept,09 2015","sept, 10 2015","sept, 11 2015"]
likes = [2,4,5]
我希望变成这种格式
[{ date: '...', likes: '...'},
{ date: '...', likes: '...'}]
答案 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 };
});