【问题标题】:Match up array of objects by title [duplicate]按标题匹配对象数组[重复]
【发布时间】:2020-08-02 22:12:08
【问题描述】:

我有一个对象数组,我想根据标题将它们分组为新对象。我该怎么做?

这是我的对象数组。根据标题进行匹配的最佳方式是什么?

{
items: [
{
_id: "5f26b025e881790d5df93cae",
title: "Slim Fit Mesh Polo Shirt",
standardPrice: 99,
salePrice: 69.3,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1351620_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-01T12:23:01.054Z",
__v: 0
},
{
_id: "5f26b025e881790d5df93caf",
title: "Cotton Quarter-Zip Sweater",
standardPrice: 160,
salePrice: 160,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1303140_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-01T12:23:01.402Z",
__v: 0
},
{
_id: "5f26b8d1b2a6750d93b98ed1",
title: "Slim Fit Mesh Polo Shirt",
standardPrice: 99,
salePrice: 69.3,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1351620_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-02T13:00:01.208Z",
__v: 0
},
{
_id: "5f26b8d1b2a6750d93b98ed2",
title: "Cotton Quarter-Zip Sweater",
standardPrice: 160,
salePrice: 160,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1303140_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-02T13:00:01.671Z",
__v: 0
}
]
}

【问题讨论】:

  • 根据标题匹配什么意思?
  • 预期结果是什么?

标签: javascript arrays json express ecmascript-6


【解决方案1】:

一个简单的方法是使用Map根据标题对对象进行分组:

let obj = {
items: [
{
_id: "5f26b025e881790d5df93cae",
title: "Slim Fit Mesh Polo Shirt",
standardPrice: 99,
salePrice: 69.3,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1351620_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-01T12:23:01.054Z",
__v: 0
},
{
_id: "5f26b025e881790d5df93caf",
title: "Cotton Quarter-Zip Sweater",
standardPrice: 160,
salePrice: 160,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1303140_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-01T12:23:01.402Z",
__v: 0
},
{
_id: "5f26b8d1b2a6750d93b98ed1",
title: "Slim Fit Mesh Polo Shirt",
standardPrice: 99,
salePrice: 69.3,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1351620_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-02T13:00:01.208Z",
__v: 0
},
{
_id: "5f26b8d1b2a6750d93b98ed2",
title: "Cotton Quarter-Zip Sweater",
standardPrice: 160,
salePrice: 160,
image: "https://www.rlmedia.io/is/image/PoloGSI/s7-1303140_lifestyle?$rl_df_pdp_5_7_lif$",
created: "2020-08-02T13:00:01.671Z",
__v: 0
}
]
};
let map = {};
let list = obj.items;
for(let i = 0; i < list.length; i++){
     let item = list[i];
     if(!map[item.title])
          map[item.title] = [item];
     else
          map[item.title].push(item);
}
console.log(Object.values(map));

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多