返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Object.keys()、Object.values()、Object.entries()用法总结
  • 720
分享到

Object.keys()、Object.values()、Object.entries()用法总结

Object.keys()Object.values()Object.entries() 2023-05-15 05:05:42 720人浏览 八月长安
摘要

目录Object.keys()一、官方解释二、语法三、处理对象,返回可枚举的属性数组四、处理数组,返回索引值数组五、处理字符串,返回索引值数组六、实用技巧Object.values(

Object.keys()

一、官方解释

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。如果对象的键-值都不可枚举,那么将返回由键组成的数组。

二、语法

Object.keys(obj)
参数:要返回其枚举自身属性的对象
返回值:一个表示给定对象的所有可枚举属性的字符串数组

三、处理对象,返回可枚举的属性数组

            let person={
                name:'一只流浪的kk',
                age:20,
                eat:function(){}
            }
            console.log(Object.keys(person));//    ['name','age','eat']

四、处理数组,返回索引值数组

 let arr=[1,2,3,4,5];
 console.log(Object.keys(arr));//['0','1','2','3','4','5']

五、处理字符串,返回索引值数组

let str='hello';
console.log(Object.keys(str));//['0','1','2','3','4']

六、实用技巧

 let person={
                   name:'一只流浪的kk',
                   age:18,
                   eat:function(){
                       
                   }
           }
           Object.keys(person).map((key)=>{
                   person[key];//获得属性对应的值,可以进行其它处理
           })

Object.values()

一、返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值

let obj = {
    foo : "bar",
    baz : 20
};
console.log(Object.values(obj));  // ["bar", 20]

二、返回数组的成员顺序,与属性的遍历部分介绍的排列规则一致

const obj = {100 : "a", 2 : "b", 7 : "c"};
console.log(Object.values(obj));   //["b", "c", "a"]

三、Object.values()只会遍历对象自身的可遍历属性

const obj = Object.create({},{p : {value : 10}});
console.log(Object.values(obj));    
console.log(Object.getOwnPropertyDescriptors(obj)); // []

Object.create方法的第二个参数添加的对象属性(属性p),如果不显式声明,默认是不可遍历的,因为p的属性描述对象的enumerable默认是false,Object.values不会返回这个属性。
因此只要把enumerable改成true,Object.values就会返回属性p的值。

const obj = Object.create({},{p:{
     value : 10,
     enumerable : true,
     configurable : true,
     writable : true,
}})
console.log(Object.values(obj));    //[10]

四、Object.values会过滤属性名为 Symbol 值的属性

//如果Object.values方法的参数是一个字符串,会返回各个字符组成的一个数组。
Object.values({ [Symbol()]: 123, foo: 'abc' });
console.log(Object.values('foo'));  //["f", "o", "o"]

五、如果参数不是对象,Object.values会先将其转为对象

console.log(Object.values(42));  // []
console.log(Object.values(true));  // []
console.log(Object.values(undefined));   //error
console.log(Object.values(null));   //error

Object.entries()

一、Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组

var obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj));

二、如果原对象的属性名是一个 Symbol 值,该属性会被省略

console.log(Object.entries({ [Symbol()]: 123, foo: 'abc' }));  // [ [ 'foo', 'abc' ] ]

三、遍历对象的属性

let obj = {
    one : 1,
    two : 2,
}
for(let [k , v] of Object.entries(obj)){
     console.log(`${JSON.stringify(k)} : ${jsON.stringify(v)}`);
}

四、将对象转为真正的Map结构

const obj = {foo : "bar", baz : 10};
const map = new Map(Object.entries(obj));
console.log(map); 

五、实现Object.entries方法

const entries = (obj) => {
     let result = [];
     const objType = typeof(obj);
     if(obj === undefined || obj === null){
          throw new TypeError();
     }
     if(objType === "number" || objType === "boolean"){
         return [];
     }
     for(let k of Object.keys(obj)){
         result.push([k,obj[k]]);
     }
     return result
}

 到此这篇关于Object.keys()、Object.values()、Object.entries()用法总结的文章就介绍到这了,更多相关Object.keys() Object.values() Object.entries()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Object.keys()、Object.values()、Object.entries()用法总结

本文链接: https://lsjlt.com/news/208403.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Object.keys()、Object.values()、Object.entries()用法总结
    目录Object.keys()一、官方解释二、语法三、处理对象,返回可枚举的属性数组四、处理数组,返回索引值数组五、处理字符串,返回索引值数组六、实用技巧Object.values(...
    99+
    2023-05-15
    Object.keys() Object.values() Object.entries()
  • Object.keys()、Object.values()、Object.entries()怎么使用
    这篇文章主要介绍“Object.keys()、Object.values()、Object.entries()怎么使用”,在日常操作中,相信很多人在Object.keys()、Object.values()、Object.entries()...
    99+
    2023-07-05
  • JavaScript中Object.entries()方法怎么用
    这篇文章主要为大家展示了“JavaScript中Object.entries()方法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中O...
    99+
    2024-04-02
  • JavaScript中Object.keys()方法怎么用
    这篇文章将为大家详细讲解有关JavaScript中Object.keys()方法怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Object.keysObject.k...
    99+
    2024-04-02
  • return用法总结
    推荐教程:java教程return用法总结:  一、在有返回值的方法中,返回方法指定类型的值,同时结束方法执行;  二、也可以用在返回值为void的方法中,用来终止方法运行;break和return  break是用来跳出循环的,例如for...
    99+
    2021-12-06
    java教程 java return
  • pandas用法总结
    https://blog.csdn.net/yiyele/article/details/80605909   一、生成数据表1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:import numpy as...
    99+
    2020-11-19
    pandas用法总结
  • python用法总结
    requests库的用法: requests是python实现的简单易用的HTTP库 因为是第三方库,所以使用前需要cmd安装 pip ×××tall requests 安装完成后import一下,正常则说明可以开始使用了 基本用法: im...
    99+
    2023-01-31
    python
  • 对象类如何使用Object.values()方法
    小编给大家分享一下对象类如何使用Object.values()方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 使用 Object.values() 通过使用 Object.valu...
    99+
    2024-04-02
  • JavaScript中你不知道的Object.entries用法
    目录前言1. 使用 for...of 遍历普通对象2. 普通对象与 Map 对象相互转换总结参考前言 平时我们经常会用到 Object 类上的静态方法,例如 Object.keys ...
    99+
    2024-04-02
  • oracle cursor 用法总结
    PL sql中cursor用法是非常广泛的,常常用于存储过程和函数的返回值,其中用于函数的返回值变相的解决了pl sql 没有表值函数的问题,一般的,在java 调用...
    99+
    2024-04-02
  • python requests用法总结
    python requests用法总结requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到。可以说,Requests 完全满足如今网络的需求本文全部来源于官方文档:   http://doc...
    99+
    2023-01-31
    python requests
  • RedisTemplate常用方法总结
    目录String类型Hash类型 List类型 Set类型 zSet类型 参考: Redis常用的数据类型: String Hash List Se...
    99+
    2024-04-02
  • Moment.js常见用法总结
    Moment.js是一个轻量级的js时间处理类库,其使用简单,方便了日常开发中对时间的操作,提高了开发效率。 引用Moment.js npm install moment 常用的方...
    99+
    2024-04-02
  • GridView DataFormatString 的用法总结
    GridView的DataFormatString属性用于设置绑定到该列的数据的格式化方式。它可以接受一系列的占位符来表示不同的数据...
    99+
    2023-09-20
    GridView
  • C#中ManualResetEvent用法总结
    ManualResetEvent是C#中的一个线程同步原语,用于在多线程环境下进行线程间的同步与通信。以下是对ManualReset...
    99+
    2023-09-13
    C#
  • 【python】import的用法总结
    import用法总结 一、直接引入二、from 模块/包 import 模块/函数1.直接引入模块2.引入模块中的所有函数3.引入模块中的指定函数4.相对引用在B_2.py 中引用A.py 中...
    99+
    2023-09-02
    python 深度学习
  • 总结phpredis之zrangeByScore用法
    本文给大家介绍有关phpredis 扩展:zrangeByScore的用法,希望对需要的朋友有所帮助~phpredis之zrangeByScorelaravel 目前默认推荐使用的 phpredis 扩展,汇总一下 zrangeByscor...
    99+
    2023-05-14
    zrangeByScore phpredis
  • Console高级用法总结
    目录00 延伸科普01 不同级别的基础信息打印02 列表型的数据打印成表格2.1 打印单一数据类型2.2 打印复合的参数类型2.3 控制显示的列03 打印某个操作的时长04 给打印编...
    99+
    2023-05-18
    Vue Console用法 Console用法
  • vue3的hooks用法总结
    目录vue3的hooks总结 一、计数器的hookvue3中hooks的介绍及用法小结一、 什么是hooks二、hooks的用法vue3的hooks总结  vue...
    99+
    2023-05-16
    vue3 hooks用法 vue3 hooks介绍
  • oracle的exists用法总结
    Oracle的EXISTS用于检查子查询是否返回任何行。它返回一个布尔值,如果子查询返回至少一行,则为true,否则为false。 ...
    99+
    2024-04-09
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作