Javascript 组对象数组

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_

我从一个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_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'))})