zoukankan      html  css  js  c++  java
  • 数组对象互转Object.entries()&&Object.fromEntries()

    使用 Object.fromEntries 将数组转成对象

    Object.fromEntries() 方法把键值对列表转换为一个对象。

    语法:

    Object.fromEntries(iterable);

    iterable:类似 Array 、 Map 或者其它实现了可迭代协议的可迭代对象。

    返回一个新的对象

    let keyArray = [
        ['name','清梦徐徐'],
        ['age','18']
    ]
    
    console.log(Objec.fromEntries(keyArray))
    // {name:'清梦徐徐',age:'18'}
    

    Object.entries()

    Object.entries(obj)方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in循环还会枚举原型链中的属性)。

    let keyObj = {
    	name:'清梦徐徐',
    	age:'18'
    }
    
    console.log(Object.entries(keyObj))
    // [['name','清梦徐徐'],['age','18']]
    
    

    其中Object.entries()与Object.fromEntries()为互逆操作

    使用 Object.fromEntries 将 Map 转成对象

    object.fromEntries()还可以将Map数据类型的数据转为对象

    let map = new Map([['name','清梦徐徐'],['age','18']])
    console.log(map)
    // {"name" => "清梦徐徐", "age" => "18"}
    console.log(Object.fromEntries(map))
    // {name:'清梦徐徐',age:'18'}
    

    Object.entries和Object.fromEntries混合使用-对象到对象的转换

    let age = {p1:18,p2:19,p3:20}
    const result = Object.fromEntries(Object.entries(age).filter(([key,value])=> value > 19))
    console.log(result)
    // {p3: 20}
    

    如果不使Object.fromEntries将数组转为对象,那应该怎么实现?

    let arr = [
     ['name','清梦徐徐'],
     ['age',18]
    ]
    
    function toObject(arr){
       return Array.from(arr).reduce(
       	(acc,[key,value]) => Object.assign(acc,{[key]:value}),	  {}
       )
    }
    
  • 相关阅读:
    SpringBoot与quartz集成
    SpringBoot 中使用 @Valid 注解 + Exception 全局处理器优雅处理参数验证
    搭建Redis集群和MySQL主从同步
    scanf_s读取键盘输入字符串失败
    含有通配符*的字符匹配(C语言)
    人之患
    TCP socket编程记录(C语言)
    程序变量命名规范(个人)
    h lib dll文件相关部分
    关于inet_ntop、inet_pton中的n和p分别代表的意义
  • 原文地址:https://www.cnblogs.com/justyouadmin/p/13501412.html
Copyright © 2011-2022 走看看