【发布时间】:2018-03-25 20:44:44
【问题描述】:
您好 :) 我需要以下方面的帮助:
我有这个:
[{"Condenser /Heat Pump":{"2":299,"starttime":"10/05/17","productClass":"Condenser /Heat Pump"}},
{"Condenser /Heat Pump":{"1":2529,"2":2270,"starttime":"10/06/17","productClass":"Condenser /Heat Pump"}},
{"Coorporate Coils":{"2":104,"3":216,"starttime":"10/05/17","productClass":"Coorporate Coils"}},
{"Coorporate Coils":{"1":1107,"2":811,"3":0,"starttime":"10/06/17","productClass":"Coorporate Coils"}}]
我想这样得到它:
[{"Condenser /Heat Pump":{"2":299,"starttime":"10/05/17","productClass":"Condenser /Heat Pump"},{"1":2529,"2":2270,"starttime":"10/06/17","productClass":"Condenser /Heat Pump"}},{"Coorporate Coils":{"2":104,"3":216,"starttime":"10/05/17","productClass":"Coorporate Coils"},{"1":1107,"2":811,"3":0,"starttime":"10/06/17","productClass":"Coorporate Coils"}}]
我一直在尝试找到一种方法来做到这一点,但不幸的是我没能做到。到目前为止,我只能做一些非常不灵活的事情:
var hp=[];
var cc=[];
for(i=0; i<mergedProductClasses.length; i++){
Object.getOwnPropertyNames(mergedProductClasses[i]).forEach(
function (val, idx, array) {
if(val =="Condenser /Heat Pump"){
hp.push(mergedProductClasses[i]["Condenser /Heat Pump"])
}else if(val =="Coorporate Coils"){
cc.push(mergedProductClasses[i]["Coorporate Coils"])
}
}
)
}
这有点工作......它给了我一些可以使用的东西但是我有多个“vals”所以如果我添加一个新的,我将不得不每次都编辑我的代码来添加那个异常......我想看看是否有一种方法可以更有效地做到这一点......而且我知道我目前的方法并不能完全满足我的需求,但这种格式允许我用数据做我需要的事情。对不起,如果这太基本了 x_x
我试过这个Merge duplicate multidimensional objects in array of objects,但这种方法合并了我所有的对象而不考虑日期,我关心日期。
【问题讨论】:
标签: javascript arrays object merge