gpt4 book ai didi

javascript - 过滤和组合具有相同属性的对象数组中的索引

转载 作者:行者123 更新时间:2023-11-30 19:33:47 24 4
gpt4 key购买 nike

试图找出在 JS 中采用一个对象数组并根据共享属性值组合其索引属性的最佳实践。

基本上,我有一组申请了某个类别的用户,其中用户申请的类别是一个数组。但是,同一用户申请的每个类别都是其自己的单独索引。目标是将用户的所有类组合到一个索引(数组)中,而不是重复。

例如

let someArray = [
{
name: 'Jim',
class: [
{
name: 'Sports Journalism',
field: 'Journalism'
}
]
},
{
name: 'Pam',
class: [
{
name: 'Fine Arts',
field: 'Art'
}
]
},
{
name: 'Jim',
class: [
{
name: 'Sales 101',
field: 'Business'
}
]
}
]
// something like this where we would want all of Jim's
// classes to be in one class array on just one index

最佳答案

使用reduce:

let someArray = [{name:'Jim',class:[{name:'Sports Journalism',field:'Journalism'}]},{name:'Pam',class:[{name:'Fine Arts',field:'Art'}]},{name:'Jim',class:[{name:'Sales 101',field:'Business'}]}];
const res = Object.values(someArray.reduce((acc, { name, class: [...classObj] }) => {
(acc[name] = acc[name] || { name, class: [] }).class.push(classObj);
return acc;
}, {}));
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }

关于javascript - 过滤和组合具有相同属性的对象数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56168416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com