a,b 的key都是相等的diffObject(a, b) { let before = [], after = [] Object.keys(a).forEach(key => { if (a[key] !== b[key]) { before.push({ ??? }) // 这里应该怎么写,{key: a[key]},但key不能是变量啊 after.push({ ??? }) } }) return [before, after]}或者有什么更好,更效率,更牛逼的的办法吗?我要达到的效果是这样的const ob1 = { name: '辣条', color: '绿色', length: 10,}const ob2 = { name: '辣条', color: '黄色', length: 12,}const diff = diffObject(ob1, ob2)console.log('diff[0]:', diff[0])console.log('diff[1]:', diff[1])// diff[0]: [{color: '绿色'}, {length: 10,}]// diff[1]: [{color: '黄色'}, {length: 12,}]这个问题的根本就是,在声明一个对象时,如何把变量作为一个key。
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
ES6 允许字面量定义对象时,用表达式
作为对象的属性名
var lastWord = 'last word';
var a = {
'first word': 'hello',
[lastWord]: 'world'
};
a['first word'] // "hello"
a[lastWord] // "world"
a['last word'] // "world"
添加回答
举报
0/150
提交
取消