如何更优雅,更简洁的优化下面这段js代码?

我有一段这样的数据:
图片描述

我希望通过js处理,取出data对象的三个数组中的code和msg,然后赋给三个新的对象,最后变成这样:
图片描述

这是我的写的代码,但是我想优化这段代码,希望有大佬指点:
图片描述

阅读 2.1k
3 个回答
var data = {
    listOne: [
        {
            id: 1,
            code: '123',
            msg: '这是One列表1'
        },
        {
            id: 2,
            code: '234',
            msg: '这是One列表2'
        }
    ],
    listTwo: [
        {
            id: 1,
            code: '123',
            msg: '这是Two列表1'
        },
        {
            id: 2,
            code: '234',
            msg: '这是Two列表2'
        }
    ]
}
function formatData (data) {
    var obj = {}
    for(var key in data) {
        obj[key] = {}
        data[key].forEach(function ({ code, msg }) {
            obj[key][code] = msg
        })
    }
    return obj
}
console.log(formatData(data))

clipboard.png

var a, b, c;

[a, b, c] = Object.entries(data).map(item => {
    const temp = {};
    item[1].forEach(({ code, msg }) => temp[code] = msg);
    return temp;
});
var getObj = (data) => {
let res = {}
data.forEach(({code,msg}) => {
   res['code'] = msg
})

return res
}

const res1 = getObj(data.listOne)
const res2 = getObj(data.listTwo)
const res3 = getObj(data.listThree)

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