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

如何将变量做为一个对象的key,push进一个数组?

如何将变量做为一个对象的key,push进一个数组?

牧羊人nacy 2018-11-22 15:10:30
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"


查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 878 浏览
慕课专栏
更多

添加回答

举报

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