深入浅出Object.keys()、Object.values()、Object.entries()方法

ES8特性:Object.entries() 方法详解 它允许我们将对象转换为可迭代的[key, value]数组,并且可以方便地遍历对象的属性或将对象转换为其他数据结构。该方法接受一个对象作为参数,并返回一个包含对象的所有可枚举属性的数组,每个属性都表示为一个[key, value]数组。可以看到,使用Object.entries()方法后,我们可以方便地将对象转换为Map对象,其中对象的属性成为了Map对象的键值对。可以看到,使用Object.entries()方法后,我们可以轻松地遍历对象的属性,并对每个属性执行相应的操作。在上面的代码中,我们使用。 阅读详情

Object.keys()

Object.keys() 静态方法返回一个由给定对象自身的可枚举的字符串键属性名组成的数组。–MDN

简单理解就是Object.keys()作为一个静态方法,返回对象中所有可枚举的键属性名,并返回这些键属性名组成的数组。

列举一个现实生活中的例子:可以将对象比作一个房子,对象的键属性名就像是房子的不同房间,使用Object.keys()方法可以获取房子的所有房间名称的列表。

语法

Object.keys(obj)

只有一个参数obj作为对象。

案例

  • 数组
const arr = ["a", "b", "c"]
console.log(Object.keys(arr)) // [ '0', '1', '2' ]
  • 对象
const arr = { "a": '张三', "b": "李四", "c": "王五" }
console.log(Object.keys(arr)) // [ 'a', 'b', 'c' ]
  • 数组对象
const data = [
  {
    "category": "水果",
    "name": "西瓜",
    "number": 20,
  },
  {
    "category": "水果",
    "name": "西瓜",
    "number": 141,
  },
  {
    "category": "蔬菜",
    "name": "西红柿",
    "number": 1,
  },
  {
    "category": "蔬菜",
    "name": "西红柿",
    "number": 92,
  }
];

console.log("data", Object.keys(data)) // [ '0', '1', '2', '3' ]

更复杂的使用场景可以参考文章:数组对象合并后计算

当我们在应对复杂的场景的时候可能单纯获取属性并不能满足我们的要求,这个时候如果想要获取属性的值可以看下面的Object.values()方法。

Object.values()

Object.values() 静态方法返回一个给定对象的自有可枚举字符串键属性值组成的数组。 –MDN

简单理解就是Object.values()是一个静态的方法,返回一个给定对象的可悲剧字符串属性值组成的数组。

列举一个现实生活中的例子:假设你有一个购物清单,其中包含了你要买的物品和对应的价格,你可以使用Object.values()方法来获取这个购物清单中所有物品的价格,然后将这些价格组成一个数组。

语法

Object.values(obj)

只有一个参数obj作为对象。

案例

  • 数组对象
const arr = { "a": '张三', "b": "李四", "c": "王五" }
console.log(Object.values(arr)) // [ '张三', '李四', '王五' ]

更复杂的使用场景可以参考文章:拆分数组对象中数组内容并计数

上面说的两种方式都是作为单独获取一个属性或者值,下面这个方法用于同时获取属性值的场景。

Object.entries()

Object.entries() 静态方法返回一个数组,包含给定对象自有的可枚举字符串键属性的键值对。–MDN

简单理解就是Object.entries()是一个静态方法,该方法返回一个数组并包含给定对象可枚举字符串的属性键值对。

列举一个现实生活中的例子:假设有一个购物清单对象,其中包含了不同商品的名称和价格,使用Object.entries()方法可以将该对象转换为一个数组,数组中的每个元素都是包含商品名称和价格的键值对。

语法

Object.entries(obj)

只有一个参数obj作为对象。

案例

  • 数组对象
const arr = { "a": '张三', "b": "李四", "c": "王五" }
console.log(Object.entries(arr)) // [ [ 'a', '张三' ], [ 'b', '李四' ], [ 'c', '王五' ] ]

小结

本文总共列举了三种遍历键值对的方式,当然也可以使用for...in、for...of等遍历方式,存在的区别这个可以自查下,写这篇文章的目的主要还是想加深自己对这三个方法的理解。

个人博客已上线,欢迎来访~
传送门:夜雨炊烟

从勒索软件攻击到数据重生:SQL Server MDF文件修复的实战生存指南 本文详细介绍了SQL Server MDF文件在遭遇勒索软件攻击后的修复策略,重点解析了Recovery Toolbox工具链的应用流程。从灾难评估到数据验证,提供分阶段修复操作、高级修复技术及防御加固方案,帮助企业快速恢复数据库并提升安全防护能力。 阅读详情

相关推荐

Ubuntu 22.04 “软件与更新”装了NVIDIA驱动,WiFi等设备不见了

在Win10装了Ubuntu22.04的双系统,台式机里面有NVIDIA 3080Ti的独立显卡,Ubuntu默认使用的nouveau驱动,需要更换成NVIDIA相应的驱动,在软件和更新里面一键安装了NVIDIA-driver-535-server之后,发现wifi、蓝牙等设备消失了。这个问题的根源据说跟这个nouveau驱动有关,希望linux社区可以解决这个问题。命令安装后 sudo reboot就可以重新看到WiFi以及蓝牙等设备图标了。然后用U盘拷贝到不能上网的Ubuntu22.04系统上,利用。

me_ysd的博客 5855

Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。

且听风吟的博客 4万+

Python实战:3种高效方法将txt转csv(附pandas对比测试)

本文针对Python中将txt文件转换为csv格式的需求,深度评测了open()、csv模块和pandas三种主流方法。通过详尽的性能对比测试,从执行效率、内存占用和适用场景等维度提供选型指南,帮助开发者根据数据规模与复杂度选择最高效的转换方案。

weixin_29073241的博客 263

Object.keys使用整理

一、语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 二、处理对象,返回可枚举的属性数组 let person = { name: "张三", age: 25, address: "深圳", getName: function() ...

weixin_30897079的博客 1898

Windows 64 位系统下安装配置 DOSBox 及 debug.exe

该篇博客同样作为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。 很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言的时候,会发现进入不了,出现类似以下的错误提示。 这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 d

加号减减号的博客 5万+

鸿蒙开发实战项目(九十二):HUAWEI Health血压测量

是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的。

斌擎科技 1133

Object.keys方法之详解

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。

XUELINGMM的博客 9553

【ComfyUI】Wan2.2 Animate 动作迁移重绘视频生成

本文介绍了一个基于ComfyUI的Wan2.2 Animate视频生成工作流,通过动作迁移和视频重绘技术实现高质量视频创作。该系统融合视频帧重建、动作迁移、图像重绘和音频合成等多种AI技术,核心采用Wan2.2 Animate 14B_fp8模型配合专属VAE解码器和LoRA微调模块。工作流程包含输入预处理、模型加载、特征提取、动作采样生成、解码输出和资源清理六个阶段,通过WanVideo系列节点实现从图像/视频输入到最终视频输出的完整处理。系统支持对参考图像进行视觉特征提取和嵌入生成,结合文本/动作嵌入进

Mr数据杨 2450

Object.keys()

Object.values(obj)返回值是一个包含对象自身的所有可枚举属性值的数组。处理数据,比如后端返回的数据是obj形式的,想要对相同的数据进行层级归类。2. 返回对象中每一项key的。(遍历一个对象,返回一个全是key的数组)(必须包含属性和方法的对象);

outstanding木槿 1万+

基于STM32L4XX、HAL库的AD7124模数转换器ADC驱动程序设计

/ 检查ID是否正确 (AD7124-4/AD7124-8有不同的ID)// 转换为电压值 (假设使用内部2.5V基准)// 构造读命令: 1(R/W) + 1(0) + 6(寄存器地址)// 构造写命令: 0(R/W) + 1(0) + 6(寄存器地址).config = 0, // 使用配置0。内置可编程增益放大器(PGA):1-128倍。// 读取ADC数据。// 读取当前ADC控制寄存器。// 检查数据是否就绪。// 写回ADC控制寄存器。// 初始化AD7124。

zhusl6688的博客 520

价值投资中的AI驱动现金流预测:多智能体协作模型

在价值投资领域,准确的现金流预测是做出明智投资决策的关键。传统的现金流预测方法往往依赖于历史数据和简单的统计模型,难以应对复杂多变的市场环境和企业经营状况。随着人工智能技术的快速发展,利用AI驱动的模型进行现金流预测成为了研究热点。本文的目的在于介绍一种基于多智能体协作的模型,用于提高价值投资中现金流预测的准确性和可靠性。本文的范围涵盖了多智能体协作模型的核心概念、算法原理、数学模型、项目实战、实际应用场景以及相关工具和资源推荐等方面,旨在为读者提供一个全面且深入的关于AI驱动现金流预测的知识体系。

AI 算法实战派 679

Object.keys()、Object.values()、Object.entries()的用法

Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 处理对象,返回可枚举的属性数组 let person = {name:"张三",age:25,address:"深圳",getName:function(){}}; console.log(Object.keys(person)); 处理数组,返回索引值数组 l...

小葵坤_易安的博客 6万+

基于MATLAB的多无人机多任务调度算法——CBBA带时间窗

本文将介绍基于MATLAB的CBBA算法,并对其进行改进,加入时间窗概念,以提高多无人机系统的调度效率和性能。时间窗用于限定任务的执行时间范围,以避免任务执行时间过长或过短导致的问题。具体而言,我们为每个任务设置一个允许的最早开始时间和最晚结束时间,并在任务分配的过程中考虑这些时间约束。在多无人机系统中,需要将若干个任务分配给不同的无人机完成,以实现高效的任务执行。以上是关于基于MATLAB的多无人机多任务调度算法CBBA带时间窗的简要介绍和源代码实现。多无人机系统的调度问题。

BUG?不存在的! 1898

Object对象entries(),keys(),values()等方法的总结

一、Object.entries() `Object.entries()` 方法返回一个给定对象 *自身* 可枚举属性的键值对数组,其排列与使用 `for...in` 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。 通俗点就是 `Object.entries()` 可以把一个对象的键值以数组的形式遍历出来,结果和 `for...in` 一致,但不会遍历原型属...

zlq_优快云的博客 1438

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

object对象keys(), values() entries()

1、 Object.keys() ES5 引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名。 var obj = { foo: "bar", baz: 42 }; Object.keys(obj) // ["foo", "baz"] 2 、Object.values() Object.values方法返回...

飞翔的熊blabla 5112

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Object.keys、Object.values、Object.entries详解

Object.keys、Object.values、Object.entries用法其实很简单,了解后会解决很多问题

Army-海军的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ES8对象方法扩展: Object.values(),Object.keys(),Object.entries(),Object.getOwnPropertyDescriptors()用法详细总结

返回对象所有属性的值,适用于只关心对象的值的场景。常用于查找符合条件的值,或者进行统计等操作。返回对象所有属性的名称,适用于遍历对象的属性名。常用于枚举属性,或者获取属性名进行其他处理。返回对象所有属性的键值对,适用于同时需要键和值的场景。可与 Map 等结构结合使用,简化代码。获取对象的属性描述符,适用于需要操作对象的属性特性时。Object.asign()只会复制对象的属性,描述符静态方法等不会被复制可用于对象的深拷贝、冻结、保护等复杂操作。

涂涂 1491

对象数据的读取,看这一篇就够了!Object.keys()、Object.values()和Object.entries()用法详解;如何获取对象原型链上的属性

Object.keys()、Object.values()和Object.entries()都是利于对象操作的便捷方法,能有效提升数据处理的效率。

RenGJ010617的博客 3587

js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()

Object.keys() Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。 例如: let obj = { name: 'haha', age: 20, showName: function () {} } Object.keys(obj) //['name'...

weixin_33883178的博客 2818

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

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致。Object.create方法的第二个参数添加的对象属性(属性p),如果不显式声明,默认是不可遍历的,因为p的属性描述对象的enumerable默认是false,Object.values不会返回这个属性。一、Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组。

qq_22905801的博客 3415

Object.keys()、Object.values()、Object.entries()的详细用法案例。

一、object.keys() 1、object.keys()传入对象,返回一个数组类型 值是方法中对象的键(key) let obj={name:"小白",age:18,sex:"男"} let newobj=Object.keys(obj) console.log(newobj)//["name", "age", "sex"] newobj.map(item=>{ console.log("键名为"+":"+item+"----"+"键值为"+":"+obj[item]) }) 控制台打印结果

果冻 1285

js中Array和Object的keys(),values()和entries()方法

js中Array和Object的keys(),values()和entries()方法 ES6 提供三个新的方法 —— entries(),keys()和values() 。 它们都返回一个遍历器对象,可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历. 1. Array的keys()和values()还有en...

Calla_Lj的博客 1556

ES6 —— entries(),keys()和values()

ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。 一、一般数组用法 for of支持遍历数组、类对象(例如DOM NodeList对象,也称伪数组)、字符串、Map对象...

weixin_30828379的博客 626

(详解)Object.keys() Object.values() Object.entries()

2.处理数组,返回索引值数组3.处理字符串,返回索引值数组4.常用技巧。

大雾起了清晨 4740

【JavaScript】entries()_keys()_values()方法详解与实战

本文详细介绍了ES6中三种可迭代对象方法:keys()、values()和entries()。keys()返回键名迭代器,values()返回键值迭代器,entries()返回键值对迭代器。它们支持数组、Map、Set、字符串等数据结构,通过for-of循环或next()方法遍历。文章通过具体示例展示了各种数据结构的应用场景,并指出普通对象需通过Object.keys/values/entries()转换后使用。最后强调这些方法具有一次性特性,且不兼容IE浏览器,同时提供了普通对象的兼容写法。

988
上一篇: 小程序编写页面级todo-list
下一篇: 对CSS样式优先级的理解
夜雨炊烟
博客等级 码龄8年 26粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雨炊烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值