对象转数组,数组转对象的常用方法

对象转数组的方法(常见三种)

在日常开发中我们往往会遇到对象转数组下面提供几种方法:

  1. Object.values(obj) //属性值    
  2. Object.keys(obj) //属性名  
  3. Object.entries(obj) //属性名和属性值

例: 

  let obj = {
        '0': { "2024-02-27": 0 },
        "1": { "2024-02-28": 0},
        "2": { "2024-02-29": 0 },
        "3": { "2024-02-30": 0 },

        
   };
    console.log(Object.values(obj)); //属性值   //[{"2024-02-27":0},{"2024-02-28":0},{"2024-02-29":0},{"2024-02-30":0}]
    console.log(Object.keys(obj));//属性名   //['0','1','2','3']
    console.log(Object.entries(obj)); //属性名和属性值 //[ ['0':{"2024-02-27":0}],["1":{ "2024-02-28":0}],["2": {"2024-02-29":0}],["3":{"2024-02-30":0}]]

数组转对象

1.Object.fromEntries方法
const newArray = [
  ['key 1', 'value 1'],
  ['key 2', 'value 2']
]
Object.fromEntries(newArray) // { key 1: "value 1", key 2: "value 2"}
2.Map方法

ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

const map = new Map([
  ['key 1', 'value 1'],
  ['key 2', 'value 2']
])
// 或者我们可以使用实例方法 set
const map = new Map()
map.set('key 1', 'value 1')
map.set('key 2', 'value 2')

Object.fromEntries(map) // { key 1: "value 1", key 2: "value 2"}
 3.Reduce方法
const array = [
  ['key1', 'value1'],
  ['key2', 'value2']
]
//或者
const map = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
])
//这个方法好用!
function toObject(pairs) {
  return Array.from(pairs).reduce(
    (acc, [key, value]) => Object.assign(acc, { [key]: value }),
    {}
  )
}

toObject(array) // { key1: 'value1', key2: 'value2' }
toObject(map) // { key1: 'value1', key2: 'value2' }
4.forEach
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(obj1)  //{0:'男',1:'女'}

相关推荐

  1. 对象数组,数组对象方法

    2024-03-15 18:56:03       43 阅读
  2. js中对象数组常用方法

    2024-03-15 18:56:03       31 阅读
  3. js实现字符串json对象四种方法

    2024-03-15 18:56:03       37 阅读
  4. Vue项目里实现json对象formData数据

    2024-03-15 18:56:03       57 阅读
  5. js中Date对象方法总结

    2024-03-15 18:56:03       57 阅读
  6. LUA 对象excel

    2024-03-15 18:56:03       41 阅读
  7. ES6+对象方法

    2024-03-15 18:56:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 18:56:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 18:56:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 18:56:03       87 阅读
  4. Python语言-面向对象

    2024-03-15 18:56:03       96 阅读

热门阅读

  1. 每天一个数据分析题(一百九十九)

    2024-03-15 18:56:03       46 阅读
  2. 小米消金坚持打防并举,持续筑牢反诈坚实堤坝

    2024-03-15 18:56:03       35 阅读
  3. C++ 智能指针的正确使用方式:unique_ptr VS shared_ptr

    2024-03-15 18:56:03       34 阅读
  4. k8s的pod服务升级,通过部署helm升级

    2024-03-15 18:56:03       43 阅读
  5. axios 请求 url 地址,判断网络地址是否存在

    2024-03-15 18:56:03       42 阅读
  6. 面试经典-26-Z 字形变换

    2024-03-15 18:56:03       42 阅读
  7. mysql统计数据库大小

    2024-03-15 18:56:03       40 阅读
  8. TCP客户端发送结构体数据

    2024-03-15 18:56:03       39 阅读
  9. 数仓开发之ODS层

    2024-03-15 18:56:03       47 阅读
  10. 微信小程序canvas画布不清晰解决方法

    2024-03-15 18:56:03       43 阅读
  11. PyMySQL

    2024-03-15 18:56:03       41 阅读
  12. 设置docker和docker容器开机自启

    2024-03-15 18:56:03       42 阅读