gpt4 book ai didi

javascript - 使用数组中的键返回一个新对象

转载 作者:行者123 更新时间:2023-12-02 21:21:10 25 4
gpt4 key购买 nike

我正在尝试从下面的 people 数组创建一个新对象,使用 born 作为键,其中包含该年出生的所有人员:

 const newObject = {
'1971': {
male: [ [Object], [Object] ],
female: [ [Object] ]
},
'1972': {
male: [ [Object], [Object] ],
female: [ [Object] ]
}
}

这是迄今为止我的代码:

people.map(person => {
let {
born,
sex
} = person;

newPeople[born] = sex == "male" ? {
male: Array.isArray(male) && array.length ? male.push(person) : [],
female: Array.isArray(female) && female.length ? female.push(person) : []}
})

人群:

const people = [{
name: 'Jim',
sex: 'male',
born: '1971',
address: {
town: 'London',
},
},
{
name: 'Bob',
sex: 'male',
born: '1971',
address: {
town: 'London',
},
},....

jsfiddle 设置在这里:https://jsfiddle.net/jw9n3bmr/

最佳答案

这是一个使用 reduce 解决您想要执行的操作的解决方案:

const people = [{
name: 'Jim',
sex: 'male',
born: '1971',
address: {
town: 'London',
},
},
{
name: 'Bob',
sex: 'male',
born: '1971',
address: {
town: 'London',
},
}
];

const result = people.reduce((acc, currVal) => {
(acc[currVal.born] || (acc[currVal.born] = { male: [], female: [] }))[currVal.sex].push(currVal);
return acc;
}, {});

console.log(result);

关于javascript - 使用数组中的键返回一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60838644/

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