【问题标题】:How to return the keys & values from two objects with different values如何从具有不同值的两个对象返回键和值
【发布时间】:2020-04-29 21:48:59
【问题描述】:

如何遍历两个对象并返回不同的键和值的列表?

let list = [];

let previousObject = {
    key: 'key_1',
    name: 'Previous name',
    age: '30',
    location: '12345 Main St.',
    height: '77',
    weight: '215',
    ...
}

let newObject = {
    key: 'key_1',
    name: 'New name',
    age: '25',
    location: '54321 Main St.',
    height: '77',
    weight: '195',
    ...
}

我希望返回列表...

list = [{ name: 'New name', age: '25', location: '54321 Main St.' }]

需要考虑的事项:

  • previousObject 可能包含比 newObject 更多的键
  • 每个用户会话可能不止一次检查这些差异

【问题讨论】:

标签: javascript arrays loops object


【解决方案1】:

在您的示例中,list 是一个数组,其中只有一个对象包含所有差异。要获取该对象,您可以这样做:

let list = [];

let previousObject = {
    key: 'key_1',
    name: 'Previous name',
    age: '30',
    location: '12345 Main St.',
    height: '77',
    weight: '215',
}

let newObject = {
    key: 'key_1',
    name: 'New name',
    age: '25',
    location: '54321 Main St.',
    height: '77',
    weight: '195',
}

let diff = {}

for (const key in newObject) {
  if (previousObject[key] != newObject[key]) {
    diff[key] = newObject[key]
  } 
}

console.log(diff)

【讨论】:

  • 这就像一个魅力!我知道解决方案很简单,但由于某种原因,我对 for 循环感到困惑 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 2022-01-18
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多