查看: 40|回覆: 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:qiongdian@foxmail.com

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

在本版发帖返回顶部