JS多数组对象转为json数组
在工作中经常会遇到接口获取的数据结构与需要的数据结构不同的情况,这就需要我们自己把接口数据改为我们需要的格式。
- 情况一:
var resData = {
datetime: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
rate: [11.11, 1.43, 11.11, 28.57, 66.77, 69.16, 69.4, 69.27, 69.8, 68.36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
volume: [1, 3, 2, 38, 69016, 85044, 88442, 82115, 88680, 89221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
};
//转为如下格式:
var chartData = [{
'date_time': 1,
'online_rate': 11.2,
'volume': 1415
},{
'date_time': 1,
'online_rate': 11.2,
'volume': 1415
},{
'date_time': 1,
'online_rate': 11.2,
'volume': 1415
},{
'date_time': 1,
'online_rate': 11.2,
'volume': 1415
},
......
]
方法如下:
var chartData = [];
var datetime = resData.datetime;
var online_rate = resData.rate;
var volume = resData.volume;
for(var i=0;i<datetime.length;i++) {
var obj = {};
for(var j=0;j<online_rate.length;j++) {
for(var z=0;z<volume.length;z++) {
if(i == j&&j == z) {
obj.date_time = datetime[i];
obj.online_rate = online_rate[j];
obj.volume = volume[z];
chartData.push(obj);
}
}
}
}