javascript|数组与对象的相互转换


文章目录

  • 前言
  • 一、数组转对象
    • 1. 需求
    • 2. 实现
    • 3. 结果展示
  • 二、对象转数组
    • 1. 需求
    • 2. 实现
    • 3. 结果展示
  • 总结

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

  • 方案二
【javascript|数组与对象的相互转换】思路
  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. 结果展示 javascript|数组与对象的相互转换
文章图片

二、对象转数组 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. 结果展示 javascript|数组与对象的相互转换
文章图片

总结 温故而知新~

    推荐阅读