Javascript JS:在推送中映射数组

Javascript JS:在推送中映射数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,是否有更好的方法将bio对象放入推送的图表值 // date and value keys. var data = {"1":[{"date":"2014-03-10","value":14},{"date":"2014-03-17","value":15},{"date":"2014-03-19","value":13},{"date":"2014-04-11","value":11},{"date":"2014-04-13","value":13.7},{"date":"2014-04-14

是否有更好的方法将
bio
对象放入推送的图表

// date and value keys.
var data = {"1":[{"date":"2014-03-10","value":14},{"date":"2014-03-17","value":15},{"date":"2014-03-19","value":13},{"date":"2014-04-11","value":11},{"date":"2014-04-13","value":13.7},{"date":"2014-04-14","value":14.6},{"date":"2014-04-15","value":17},{"date":"2014-04-17","value":9},{"date":"2014-04-20","value":10},{"date":"2014-04-21","value":17},{"date":"2014-04-24","value":15},{"date":"2014-05-02","value":10},{"date":"2014-05-03","value":95.3},{"date":"2014-05-09","value":92.1},{"date":"2014-05-12","value":3},{"date":"2014-05-14","value":88.9},{"date":"2014-05-15","value":95.3},{"date":"2014-05-23","value":82.6},{"date":"2014-05-24","value":95.3},{"date":"2014-05-30","value":99},{"date":"2014-05-31","value":88.9},{"date":"2014-06-01","value":80},{"date":"2014-06-17","value":82},{"date":"2014-07-08","value":95},{"date":"2014-07-30","value":127},{"date":"2014-08-02","value":90},{"date":"2014-08-03","value":80},{"date":"2014-08-09","value":82}],"2":[{"date":"2014-03-10","value":"1"},{"date":"2014-03-19","value":"23"},{"date":"2014-04-11","value":"14"},{"date":"2014-04-13","value":"14.4"},{"date":"2014-04-14","value":"14"},{"date":"2014-04-21","value":"11"},{"date":"2014-04-24","value":"13.5"},{"date":"2014-05-04","value":"4"},{"date":"2014-05-15","value":"15"},{"date":"2014-05-17","value":"16"},{"date":"2014-05-23","value":"9.3"},{"date":"2014-05-24","value":"11"},{"date":"2014-05-25","value":"14.9"},{"date":"2014-06-01","value":"14.1"}]};

var bio = [];
$.each(data['1'], function(date, value) {
    bio.push({x: value['date'], y: Math.round(value['value'])});
});

chart = [];
chart.push({
    area: true,
    color: '#FFBA78',
    values: bio,
});
基本上,我正在做的是获取数据['1']数组,并且对于每个节点,我正在更改键:
date
x
,而
value
y
。我想这可能是一个阵列地图?比如:

chart.push({
    area: true,
    color: '#FFBA78',
    values: data['1'].map(function() { ... }),
});

如果您当前的代码正常工作,那么您认为
$是正确的。map
可以完成相同的工作:

chart.push({
    area: true,
    color: '#FFBA78',
    values: $.map(data[1], function(entry) {
        return {x: entry.date, y: Math.round(entry.value)};
    })
});

或者使用ES5中的
Array#map
(可以在旧浏览器上填充):


如果您当前的代码正常工作,那么您认为
$是正确的。map
可以完成相同的工作:

chart.push({
    area: true,
    color: '#FFBA78',
    values: $.map(data[1], function(entry) {
        return {x: entry.date, y: Math.round(entry.value)};
    })
});

或者使用ES5中的
Array#map
(可以在旧浏览器上填充):


使用ES5
数组.prototype.map

data['1'].map(function(item){ return  {x: item.date, y: Math.round(item.value)}  } )
其中
表示数组中的
日期
对象

重要提示:这将适用于IE9+,如果您需要在旧版IE中运行此功能,请遵循polyfill说明

您还可以在此处检查两个测试之间的一些性能基准:


浏览器支持和性能可能是您要查看此选项的关键方面。

使用ES5
Array.prototype.map

data['1'].map(function(item){ return  {x: item.date, y: Math.round(item.value)}  } )
其中
表示数组中的
日期
对象

重要提示:这将适用于IE9+,如果您需要在旧版IE中运行此功能,请遵循polyfill说明

您还可以在此处检查两个测试之间的一些性能基准:

浏览器支持和性能可能是您要查看以选择此选项的关键领域。

“…对于每个节点,我将更改键:
date
y
,将
更改为
x
。”不,您将
日期
更改为
x
,如果你在
数据中有一个
键,我就看不到引用的数据了“……对于每个节点,我都要把键:
日期
改成
y
,把
改成
x
。”不,你把
日期
改成
x
,如果在
数据中有
键,我看不到引用的数据。