查看: 104|回复: 0

javaScript数组互转对象

[复制链接]

0

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-7-12
发表于 2022-6-10 15:07:00 | 显示全部楼层 |阅读模式

1、数组转对象

1.1、需求

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

1.2、forEach

let 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

let 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

let 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

let 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
*/


来源:https://www.cnblogs.com/pine007/p/16363288.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:[email protected]

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部