如何返回由于覆盖的对象元素而导致的对象

如何返回由于覆盖的对象元素而导致的对象

我想只返回firstObject使用Ecmascript6在secondObject中覆盖的元素

var firstObject = {
  one: 1,
  four: 55,
  six: 6}var secondObject = {
  one: 1,
  two: 2,
  three: 3,
  four: 4}returnObject = { four:55 }


阿波罗的战车
浏览 313回答 2
2回答

青春有我

如果要检查两个对象上存在哪些属性以及值的差异,可以使用Object.entries将第一个对象转换为数组。使用reduce循环数组通,检查并构建新的对象。var firstObject = {  one: 1,  four: 55,  six: 6}var secondObject = {  one: 1,  two: 2,  three: 3,  four: 4}var returnObject = Object.entries(firstObject).reduce((c, [k, v]) => {  if (secondObject[k] !== undefined && v !== secondObject[k]) c[k] = v;  return c;}, {});console.log(returnObject);一个班轮代码:var returnObject = Object.entries(firstObject).reduce((c, [k, v]) => secondObject[k] !== undefined && v !== secondObject[k] ? Object.assign(c, {[k]: v}) : c, {})

守着星空守着你

您可以获取条目,过滤和映射新对象。var firstObject = { one: 1, four: 55, six: 6 },    secondObject = { one: 1, two: 2, three: 3, four: 4 },     result = Object.assign({}, ...Object        .entries(firstObject)        .filter(([k, v]) => k in secondObject && secondObject[k] !== v)        .map(([k, v]) => ({ [k]: v }))    );console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript