gpt4 book ai didi

javascript - 将新属性添加到另一个数组中的现有对象数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:01 25 4
gpt4 key购买 nike

我不知道如何正确地写标题,请原谅我。

基本上,我有一个来自某个地方的对象数组列表,我需要将它们映射在一起。怎么用下面的代码我无法做到这一点。

const person = [
{name:'hello',id:1},
{name:'javascript',id:2},
{name:'world',id:3}
];

const selected = [2,3];


const normalized = person.map((obj,i) => obj.id === selected[i] ? Object.assign({}, obj, {checked:true}) : obj);

console.log(normalized)

https://jsfiddle.net/q9g0kazx/1/

我需要在所选数组的基础上添加额外的属性。为什么上面的代码不起作用?

最佳答案

如果我理解正确的话,只需使用 forEach 迭代数组即可并根据需要添加属性。

const person = [
{name: 'hello', id: 1},
{name: 'javascript',id: 2},
{name: 'world',id: 3}
];

const selected = [2,3];

person.forEach(p => {
if (selected.includes(p.id)) {
p.checked = true;
}
});

console.log(person);

或者您可以使用map像这样:

const person = [
{name: 'hello', id: 1},
{name: 'javascript',id: 2},
{name: 'world',id: 3}
];

const selected = [2,3];

person.map(p => {
if (selected.includes(p.id)) {
p.checked = true;
}
return p;
});

console.log(person);

请注意,您必须返回对象(在我们的例子中为人)

关于javascript - 将新属性添加到另一个数组中的现有对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962519/

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