JS сравнить два объекта. Ключ возврата измененного значения - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь сравнить два объекта и вернуть ключ измененного значения.

 const a = {
    email: 'john@doe.nl',
    first_name: 'john',
    last_name: 'doe',
 };

 const b = {
    email: 'peter@doe.nl',
    first_name: 'peter',
    last_name: 'doe',
 };

Сейчас у меня есть:

 Object.entries(user).reduce((key, val) => {
   // Got the key and val
   // Compare the second object against the key/val?
 });

Ожидается: это изменилось: email & first_name

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Вы можете попробовать использовать filter:

Object.keys(a).filter( key => a[key] !== b[key] )

Это предполагает, что a и b имеют одинаковые клавиши. Любые новые ключи, которые находятся в a, будут отображаться как измененные.

0 голосов
/ 04 мая 2020

Вы можете перебрать один из объектов и проверить, имеют ли ключ во втором объекте одинаковое значение

const a = {
  email: 'john@doe.nl',
  first_name: 'john',
  last_name: 'doe',
};

const b = {
  email: 'peter@doe.nl',
  first_name: 'peter',
  last_name: 'doe',
};

for (let keys in a) {
  if (b[keys] && a[keys] !== b[keys]) {
    console.log(keys)
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...