react中如何将对象值数组更改为对象值数组对象

问题描述

我有一个像这样的对象值数组:

{
    user: ["data1","data2"],user2: ["data1",}

我想像这样将对象值数组更改为对象值数组对象

{
    user: [{value: "data1",name: "data1",isChecked: false},{value: "data2",name: "data2",isChecked: false}],user2: [{value: "data1",isChecked: false}]
}

解决方法

您可以使用 Object.entries 遍历对象,该对象将为您提供一个包含对象每个属性的 [key,value] 的数组,然后只需创建一个 reduce 函数来构建一个返回修改后数组的新对象使用地图功能:

const obj = {
    user: ["data1","data2"],user2: ["data1",}
const result = Object.entries(obj).reduce((acc,curr) => {
 const [key,value] = curr

 return {
  ...acc,[key]: value.map(item => ({ value: item,name: item,isChecked: false}))
 }

},{})

console.log(result)