关于reduce方法回调写法的疑问!(标签-ar|关键词-数组)

背景

求有缘人解答,在看Vue3文档案例时发现一个数组reduce方法,目的是把以下数组转换为后面的对象:

[ 'name','power' ]  ==> { name:1 , power:1 }

我自己的reduce方法:

arr.reduce((o, key) => {
  if (!o[key]) {
    o[key] = 1
  }
  return o
}, {})

官方使用的reduce:

arr.reduce((o, key) => ((o[key] = 1), o), {})
官方的回调没看懂😭,还请有缘人慷慨解囊🙏

(o[key] = 1), o) 是执行o[key] = 1再返回o,可以看下逗号操作符的用法,执行左边执行右边,返回右边

有啥不懂的,只是简写了而已 。


let arr=[ 'name','power' ];
    let c=arr.reduce((o, key) => {
      return ((o[key] = 1), o)
    },{});
    // let c=arr.reduce((o, key) => ((o[key] = 1), o), {})
    console.log(arr,c)

不懂o[key]?
js里给 对象加 一个 动态的属性 就可以用 [key]