例如,我有一个包含重复类别的数组
array ={类别:“基于广告的货币化”,SubCategory:“内容和信息服务”},{类别:“资产负债表业务”,SubCategory:"test1"},{类别:“资产负债表业务”,SubCategory:"test2"}
我希望能够将该数组的值推送到一个新的数组中,但格式如下:
array2 ={类别:“资产负债表业务”,SubCategory:{名称:"test1"},{名称:"test2"}},{类别:“基于广告的货币化”,SubCategory:{名称:“内容和信息服务”}
发布于 2021-01-20 03:26:40
我认为以下内容应该足以实现你想要的。
像往常一样,有很多优化的方法可以做同样的事情,但这应该足以让你开始,你可以考虑自己的优化。
var array = [{ Category: "Ad-Based Monetization", SubCategory: "Content & Information Services"}, { Category: "Balance sheet businesses", SubCategory: "test1"}, { Category: "Balance sheet businesses", SubCategory: "test2"}]
var obj = {}
// Create a simple lookup with Category as key and SubCategories as value
array.forEach(arr => {
if(obj.hasOwnProperty(arr.Category)){
obj[arr.Category].push(arr.SubCategory);
} else {
obj[arr.Category] = [arr.SubCategory];
}
});
const final = []
// Loop over the obj created and format it into the desired structure
for (let Category in obj){
const SubCategory = obj[Category].map(name => ({name}));
final.push({Category, SubCategory})
}
console.log(final);
https://stackoverflow.com/questions/65797892
复制相似问题