Как применить свойства объекта к другому

У меня есть условный объект со свойствами first_name, last_name, birthday, но от сервера приходит ещё с другими свойствами, например, с phone, email, login

Я хочу применить свойства второго объекта к первому, но нужно применить только существующие свойства из первого объекта. Надеюсь я правильно объяснил.

Так вот, как это можно сделать? Да можно просто написать:

FirstObj.first_name = SecondObj.first_name;
FirstObj.last_name = SecondObj.last_name;
FirstObj.birthday = SecondObj.birthday;

Но это не то, буду рад если вы мне напишите какой метод за это отвечает, и скинитесь литературой


Ответы (1 шт):

Автор решения: Regent

Можно пройтись в цикле по всем свойствам второго объекта. Для каждого свойства проверить, есть ли оно в первом объекте. Если есть - скопировать значение свойства из второго объекта в первый

Сработает и в обратную сторону - пройтись по свойствам первого объекта и проверять наличие свойства во втором объекте

Вариант с использованием оператора in и цикла for in:

let FirstObj = { first_name: "firstName1", last_name: "lastName1", birthday: "birthday1" };
let SecondObj = { first_name: "firstName2", last_name: "lastName2", phone: "phone2" };

for (let key in SecondObj) {
  if (key in FirstObj) {
    FirstObj[key] = SecondObj[key];
  }
}

console.log(FirstObj);

→ Ссылка