JS比较两个对象。返回值的更改键

时间:2020-05-04 11:48:24

标签: javascript object compare

我正在尝试比较两个对象并返回更改后的值的键。

 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?
 });

预期: 更改为:电子邮件和名字

2 个答案:

答案 0 :(得分:1)

您可以尝试使用//hs-api.js const results = await request(options); // don`t sure, that it is correct error indicator for your library if(result.error) { throw new Error(// describe error here); } const res = JSON.parse(response.body); all = all.concat(res.results); if(res.hasOwnProperty("paging")) { return await getReq(`${res.paging.next.link}&apikey=${settings.api_key}`) } else { console.log(all); return all; }

filter

这假设Object.keys(a).filter( key => a[key] !== b[key] )a具有相同的键。 b中的所有新键都会显示为已更改。

答案 1 :(得分:0)

您可以遍历一个对象,并检查第二个对象中的键是否具有相同的值

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)
  }

}