一、数组转对象

// 数组
const arr = [
  { label: '男', value: 0 },
  { label: '女', value: 1 }
]

转成如下格式

// 预期对象
 obj ===> {0: '男', 1:'女'}

代码实现

function f(arr) {
// 数组的reduce方法,使数组的obj初始值为{},将数组中每一个对象所需的值,
// 分别作为对象中的键与值
  return arr.reduce((obj, item) => {
    obj[item.value] = item.label
    return obj
  }, {})
}
const obj = f(arr) 
// 简写方式 
function f(arr) {
  return arr.reduce((obj, item) => (obj[item.value] = item.label,obj), {})
}
const obj = f(arr) 

二、对象转数组

// 对象
const obj = { 0: '男', 1: '女' }

转成如下格式

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

代码实现

function f(obj) {
  let result = []
  for (let key in obj) {
    result.push({
      label: obj[key],
      value: Number(key)
    })
  }
  return result
}
const arr = f(obj) 
Logo

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

更多推荐