前言

前端小伙伴儿时常会遇到需要将服务器返回的数据进行处理的场景,本文介绍了数组与对象相互转换的场景,一起来看看吧~


一、数组转对象

1. 需求

let arr = [{label: '男', value: 0},{label: '女', value: 1}]
// 转换为 
let obj = {0:'男', 1:'女'}

2. 实现

  • 方案一

思路

  1. 使用数组的forEach方法遍历数组
  2. 定义一个空对象
  3. 将遍历得到的每一个对象中的value值当做新对象的key,label的值当做新对象的值
  4. 循环结束后将obj的值返回给调用者即可

代码如下(示例):

let arr = [{label: '男', value: 0},{label: '女', value: 1}]

function arrToObj(arr){
    let obj = {}
    arr.forEach(item => {
        obj[item.value] = item.label
    })
    return obj
}

const obj1 = arrToObj(arr)
console.log('数组forEach方法', obj1)
  • 方案二

思路

  1. 使用数组的forEach方法遍历数组
  2. 定义一个空对象
  3. 将遍历得到的每一个对象中的value值当做新对象的key,label的值当做新对象的值
  4. 循环结束后将obj的值返回给调用者即可

代码如下(示例):

let arr = [{label: '男', value: 0},{label: '女', value: 1}]

function arrToObj1(arr){
   return arr.reduce((obj,item) => {
        obj[item.value] = item.label
    	return obj
    },{})
}

const obj2 = arrToObj1(arr)
console.log('数组reduce方法', obj2)

3. 结果展示

在这里插入图片描述

二、对象转数组

1. 需求

let obj = { 0: '男', 1: '女' }
// 转换为
let arr = [{label: '男', value: 0},{label: '女', value: 1}]

2. 实现

代码如下(示例):

let obj = { 0: '男', 1: '女' }

// 使用for...in...循环,拿到对象的键、值
// 将其组成新对象,使用数组的push方法追加到数组中
function objToArr(obj){
    let arr = []
    for(let key in obj){
        arr.push({
            label: obj[key],
            value: key
        })
    }
    return arr
}

const arr = objToArr(obj)
console.log(arr)

3. 结果展示

在这里插入图片描述


总结

温故而知新~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐