Javascript 组对象数组
我从一个URL返回一个数组,如下所示:Javascript 组对象数组,javascript,underscore.js,Javascript,Underscore.js,我从一个URL返回一个数组,如下所示: [ { id : 1, product_id : 101, price_new : 80, price_old : 90 }, { id : 2, product_id : 101, price_new : 80, price_old : 90 }, { id : 3, product_id : 102, price_
[
{
id : 1,
product_id : 101,
price_new : 80,
price_old : 90
},
{
id : 2,
product_id : 101,
price_new : 80,
price_old : 90
},
{
id : 3,
product_id : 102,
price_new : 80,
price_old : 90
},
]
我想将此转换为:
[
{
product_id : 101,
offers : [
{
id: 1
price_new : 80,
price_old : 90
},{
id: 2
price_new : 80,
price_old : 90
}]
},
{
product_id : 102,
offers: [{
id : 3,
price_new : 80,
price_old : 90
}]
},
]
有谁知道如何使用下划线js完成此操作?
希望使用下划线获得解决方案,因为我们在整个项目中使用下划线,而且看起来更干净,所以…您应该能够使用下划线的方法对它们进行分组,尽管它不会(单独)从每个记录中删除产品id。然后可以获取每个键并将其用作数组元素
var数据=[{
id:1,
产品编号:101,
价格(新):100,,
售价:90
}, {
id:2,
产品编号:101,
价格(新):100,,
售价:90
}, {
id:3,
产品编号:102,
价格(新):100,,
售价:90
}, ];
var grouped=.chain(data.groupBy(“产品标识”).map(函数(提供,产品标识){
//可以选择从每个记录中删除产品标识
var cleanOffers=u2;.map(提供,函数(it){
返回省略(它是“产品id”);
});
返回{
产品标识:产品标识,
优惠:清洁优惠
};
}).value();
document.getElementById(“结果”).textContent=JSON.stringify(分组)代码>
请检查更新(您接受时正在处理更新)。在我看来,现在只使用下划线方法就更简洁了。var-arranged=u.map(u.groupBy(数据,'product_id')、函数(item,key){return{product_id:key,offers:u.map(item,u.partial(u.omit,'product_id'))})代码>