javaScript数组互转对象

1、数组转对象

1.1、需求

[{ id: 1, name: '张三' },{ id: 2, name: '李四' }]
转换为

1.2、forEach

copylet arr = [{ id: 1, name: '张三' },{ id: 2, name: '李四' }]
let obj = {}
arr.forEach(item => obj[item.value] = item.name)

console.dir(obj)
/*
    Object
    1: "张三"
    2: "李四"
*/

1.3、reduce

copylet arr = [{ id: 1, name: '张三' },{ id: 2, name: '李四' }]
let obj = arr.reduce((obj, item) => ({...obj,[item.id]: item.name}), {})

console.dir(obj)
/*
    Object
    1: "张三"
    2: "李四"
*/

2、对象转数组

2.1、需求

{1:'张三', 2:'李四'}
转换为
[{ id: 1, name: '张三' },{ id: 2, name: '李四' }]

2.2、for...in

copylet obj = {1:'张三', 2:'李四'}
let arr = []
for (let index in obj) {
    arr.push({
        'id': index,
        'name': obj[index]
    })
}

console.dir(arr)
/*
    Array(2)
    0: {id: '1', name: '张三'}
    1: {id: '2', name: '李四'}
    length: 2
*/

2.3、map

copylet obj = {1:'张三', 2:'李四'}
let arr = Object.keys(obj).map(index => ({ id: index, name: obj[index]}))

console.dir(arr)
/*
    Array(2)
    0: {id: '1', name: '张三'}
    1: {id: '2', name: '李四'}
    length: 2
*/
posted @   pine007  阅读(3724)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示

目录导航