为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿波罗的战车 2019-04-09 14:15:14
如何返回由于覆盖的对象元素而导致的对象我想只返回firstObject使用Ecmascript6在secondObject中覆盖的元素var firstObject = {   one: 1,   four: 55,   six: 6}var secondObject = {   one: 1,   two: 2,   three: 3,   four: 4}returnObject = { four:55 }
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果要检查两个对象上存在哪些属性以及值的差异,可以使用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, {})


查看完整回答
反对 回复 2019-05-17
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以获取条目,过滤和映射新对象。


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


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信