JS - Add a new property and value on one of the objects

余生长醉 提交于 2021-02-05 09:41:42

问题


I have a list of objects

const array = [
    {club: "Club A", number: 12},
    {club: "Club B", number: 12}
]

I want to add a new property in one of the objects

member: ["a", "b"]

It would be

const newArray = [
    {club: "Club A", number: 12, member: ["a", "b"]},
    {club: "Club B", number: 12}
]

Tried with map

const newArray = array.map(obj => check if obj.club ==="Club A" )

回答1:


You can use map and object destrcturing

const array = [{club: "Club A", number: 12},{club: "Club B", number: 12}]
let member = ["a", "b"]

const newArray = array.map(obj => obj.club === "Club A" ? {...obj,member} : obj)

console.log(newArray)



回答2:


You could just assign the new property.

With a classic assignment:

const
    array = [{ club: "Club A", number: 12 }, { club: "Club B", number: 12 }],
    member = ["a", "b"];
    
array.find(({ club }) => club === "Club A").member = member;

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Or take Object.assign

const
    array = [{ club: "Club A", number: 12 }, { club: "Club B", number: 12 }],
    member = ["a", "b"];
    
Object.assign(array.find(({ club }) => club === "Club A"), { member });

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }



回答3:


You could use Object.assign in map

const array = [
    {club: "Club A", number: 12},
    {club: "Club B", number: 12}
]

const member = {member: ["a", "b"]};

const newArray = array.map(obj => obj.club === 'Club A' ? Object.assign(obj, member) : obj);
console.log(newArray);



回答4:


You can use find() to get the item you want to edit. Then just assign the property to it:

const array = [
    {club: "Club A", number: 12},
    {club: "Club B", number: 12}
]

// find the correct item
let item = array.find(item => item.club == "Club A")
item.member =  ["a", "b"]

console.log(array)


来源:https://stackoverflow.com/questions/55500556/js-add-a-new-property-and-value-on-one-of-the-objects

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!