js遍历生成对象

现在有如下数据:

const state={
    hr:{
        list:[1,2],
        enable:false
    },
    sales:{
        list:[1,3],
        enable:false
    },
    DH:{
        list:[6,3],
        enable: true
    }
}

我想得到如下结构数据:

arr=[{hr:[1,2]},{sales:[1,3]},{DH:[6,3]}]

我这样写:

let arr=[];
Object.keys(state).map((key)=>{
    arr.push(
        {
            key:state[key].list
        }
    )

})

但是得到的是不对的,
该怎么写

阅读 4.3k
3 个回答
let arr = []
for (let [key, value] of Object.entries(state)) {
  arr.push({[key]: value.list})
}
console.log('arr', arr)

你写的是对的,但是你写的时候忘加了一个",",导致语法错误。

const state={
    hr:{
        list:[1,2],
        enable:false
    },
    sales:{
        list:[1,3],
        enable:false
    },//这边少了一个“,”号
    DH:{
        list:[6,3],
        enable:true
    }
}
    
    
let arr=[];
Object.keys(state).map((key)=>{
    arr.push(
        {
            key:state[key].list
        }
    )
});
console.log(arr);
const state={
  hr:{
      list:[1,2],
      enable:false
  },
  sales:{
      list:[1,3],
      enable:false
  },
  DH:{
      list:[6,3],
      enable:false
  },
}

const arr = Object.keys(state).map((key) => {
  return {[key]: state[key].list}
})
console.log(arr)

提供一个版本吧...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题