javaScript数组和对象相互转换

一、数组转对象

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

1.1、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.2、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: "李四"
*/

二、对象转数组

{
    
    1:'张三', 2:'李四'}

 转换为

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

1、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、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
*/

猜你喜欢

转载自blog.csdn.net/weiguang102/article/details/125498346