将数组合并到一个对象中?

时间:2013-11-15 20:50:14

标签: javascript

我有以下数组:

dates = ['2013-06-01', '2013-07-01', '2013-08-01', '2013-09-01', '2013-10-01', '2013-11-01']
values = [20, 10, 5, 5, 20, 25]

我需要做的是将它们合并为以下格式:

data: [
  { date: '2013-06-01', value: 20 },
  { date: '2013-07-01', value: 10 },
  { date: '2013-08-01', value: 5 },
  { date: '2013-09-01', value: 5 },
  { date: '2013-10-01', value: 20 },
  { date: '2013-11-01', value: 25 }
]

4 个答案:

答案 0 :(得分:3)

假设它们的长度始终相同:

var data = [];
for (var i = 0; i < dates.length; i++) {
    var obj = {}
    obj.date = dates[i];
    obj.value = values[i];
    data.push(obj);
}

答案 1 :(得分:0)

HMM。我相信你已经想到了这个。使用jquery,如果你不使用它,请道歉。

 data = jQuery.map(dates,function(v,i){
      return {'date': i, 'value': values[i]}
 }

答案 2 :(得分:0)

var data = {
  data: dates.map(function(x, i) {
    return { date: x, value: values[i] };
  })
};

Array.prototype.map是ECMAScript第5版,不适用于&lt; IE9。 对于旧浏览器,我们this polyfill

答案 3 :(得分:-1)

如果jQuery是一个选项,你可以试试这个:

http://api.jquery.com/serializeArray/