如何将一个数组中的属性值作为属性名?

先来看下题目:

将arr转化为 {0: '男', 1:'女'}

const arr = [
        { label: '男', value: 0 },
        { label: '女', value: 1 },
      ]
function f(arr){
    // 你的代码
}

const obj  = f(arr)
console.log(obj) ==> {0: '男', 1:'女'}
复制代码

方法一 (较为简单直接的写法)

function f(arr){
    // 你的代码
  const obj = {}
        arr.forEach(item => {
          obj[item.value] = item.label
  });
}

const obj  = f(arr)
console.log(obj) ==> {0: '男', 1:'女'}
复制代码

方法二(利用reduce的方法)

function f(arr) {
      // 写代码
      // reduce
    return arr.reduce((acc, item) => {
       acc[item.value] = item.label
       return acc
     }, {})
   }
   
const obj  = f(arr)
console.log(obj) ==> {0: '男', 1:'女'}
复制代码

也可以将代码写到一行

function f(arr){
  return arr.reduce((acc,item) => ({...acc,[item.value]:item.label}),{})
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享