Обновление нескольких значений объекта в JavaScript

Учитывая объект

var myObject = {
    label: 'foo',
    name: 'bar',
    id: 12
},

Если бы я хотел изменить несколько значений, я бы сделал следующее:

myObject.label = "bar";
myObject.name = "foo";

При обновлении больших наборов данных он делает код довольно блочным. Есть ли способ сделать это более кратким образом?

Подобно:

myObject.({label: 'foo'}, {name: 'bar'});

Ответ 1

Object.assign хорош для этого:

var myObject = {
    label: 'foo',
    name: 'bar',
    id: 12
}
Object.assign(myObject, {label: 'Test', name: 'Barbar'})
console.log(myObject)

Ответ 2

В дополнение к Object.assign вы также можете использовать оператор распространения объектов:

var myObject = {
    label: 'foo',
    name: 'bar',
    id: 12
};

myObject = {...myObject, label: 'baz', name: 'qux'};
console.log(myObject);

// Or, if your update is contained in its own object:

var myUpdate = {
    label: 'something',
    name: 'else'
}

myObject = {...myObject, ...myUpdate}
console.log(myObject)