Javascript 根据组将json数组简化为不同的变量

Javascript 根据组将json数组简化为不同的变量,javascript,arrays,json,Javascript,Arrays,Json,我有一个php文件的json输出,如下所示 [{"device_id":"9700001","sensor_value":"31.5","update_time":"2017-04-28 18:49:06"}, {"device_id":"9700002","sensor_value":"31.5","update_time":"2017-04-28 18:47:05"}, {"device_id":"9700003","sensor_value":"31.5","update_time":"2

我有一个php文件的json输出,如下所示

[{"device_id":"9700001","sensor_value":"31.5","update_time":"2017-04-28 18:49:06"},
{"device_id":"9700002","sensor_value":"31.5","update_time":"2017-04-28 18:47:05"},
{"device_id":"9700003","sensor_value":"31.5","update_time":"2017-04-28 18:45:05"},
{"device_id":"9700003","sensor_value":"33.1","update_time":"2017-04-28 06:24:57"},
{"device_id":"9700002","sensor_value":"33.1","update_time":"2017-04-28 06:22:57"},
{"device_id":"9700003","sensor_value":"33.1","update_time":"2017-04-28 06:20:56"},
{"device_id":"9700001","sensor_value":"33.1","update_time":"2017-04-28 06:18:56"},
{"device_id":"9700002","sensor_value":"33.1","update_time":"2017-04-28 06:16:56"},
{"device_id":"9700002","sensor_value":"33.1","update_time":"2017-04-28 06:14:56"}]
我想将此数组转换为特定数据集,即我想将设备9700001的更新时间值和传感器值转换为两个数据集, 9700001

datasensor1=[{"sensor_value":"31.5","update_time":"2017-04-28 18:49:06"},{"sensor_value":"33.1","update_time":"2017-04-28 06:18:56"},{"sensor_value":"33.1","update_time":"2017-04-28 06:18:56"}]
对于设备970002

 datasensor2=[{"sensor_value":"31.5","update_time":"2017-04-28 18:47:05"},{"sensor_value":"33.1","update_time":"2017-04-28 06:22:57"},{"sensor_value":"33.1","update_time":"2017-04-28 06:16:56"},{"sensor_value":"33.1","update_time":"2017-04-28 06:14:56"}]
对于设备9700003,类似地

 datasensor3=[{"sensor_value":"31.5","update_time":"2017-04-28 18:45:05"},{"9700003","sensor_value":"33.1","update_time":"2017-04-28 06:24:57"},{"sensor_value":"33.1","update_time":"2017-04-28 06:20:56"}]
我首先使用设备id分组

 var sensor= _.groupBy(data,"device_id"); 
但事后我无法将物体分开。如何解决此问题?

使用
filter()
map()

var数据=[{“设备id”:“9700001”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:49:06”},
{“设备id”:“9700002”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:47:05”},
{“设备id”:“9700003”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:45:05”},
{“设备id”:“9700003”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:24:57”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:22:57”},
{“设备id”:“9700003”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:20:56”},
{“设备id”:“9700001”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:18:56”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:16:56”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:14:56”}];
var排序={};
data.forEach((行)=>{
已排序[行设备id]=[];
});
Object.keys(已排序).forEach((id)=>{
排序后的[id]=数据.过滤器((行)=>row.device_id==id).映射((行)=>({
传感器_值:行。传感器_值,
更新时间:行。更新时间
}));
});
控制台日志(已排序)尝试使用方法

var数据=[{“设备id”:“9700001”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:49:06”},
{“设备id”:“9700002”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:47:05”},
{“设备id”:“9700003”,“传感器值”:“31.5”,“更新时间”:“2017-04-28 18:45:05”},
{“设备id”:“9700003”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:24:57”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:22:57”},
{“设备id”:“9700003”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:20:56”},
{“设备id”:“9700001”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:18:56”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:16:56”},
{“设备id”:“9700002”,“传感器值”:“33.1”,“更新时间”:“2017-04-28 06:14:56”}]
功能组(数据、id){
返回数据。减少((a,b)=>{
如果(b.device_id==id)
a、 推({
传感器_值:b.传感器_值,
更新时间:b.更新时间
})
归还
},[])
}
控制台日志(组(数据,9700001))

console.log(组(数据,970002))
感谢您的及时回复。我如何使其动态化。我的意思是,根据设备id的数量,我应该能够创建数据集。