object.values()的用法

一、用法介绍

在ES2017 (ECMA8)中,引入了新的方法object.values(),该方法可以将一个对象的所有属性的值以数组的形式返回。这个方法非常方便,因为在JavaScript中访问对象的属性时,我们通常是需要遍历对象所有的属性,并单独取出值这就需要我们写循环遍历的代码,非常繁琐。而使用object.values()则可以避免这种不必要的麻烦。

constobject1={a:'value1',b:'value2',c:'value3'};
console.log(Object.values(object1));//['value1','value2','value3']

二、使用场景

object.values()方法的最常见用途就是获取对象的值,它方便、快捷,可以用来迭代和过滤对象的值。

1、迭代对象的属性值

在很多情况下,我们需要迭代对象的属性值,比如说打印一个对象的所有值,或者检查对象的所有值是否符合某个条件。在这种情况下,使用 object.values() 函数可以让代码显得更直观方便。

constperson={
name:'Jack',
age:25,
job:'programmer',
address:{
city:'Shanghai',
street:'NanjingRoad'
}
};

Object.values(person).forEach(value=>console.log(value));
//prints"Jack",25,"programmer",{city:"Shanghai",street:"NanjingRoad"}

上面这个例子中,我们使用Object.values() 和 forEach() 迭代了person对象所有值。

2、获取对象的属性值并过滤

在某些情况下,我们可能需要筛选对象值数组上符合某些条件的值。事先,我们可以使用 Array.filter() 方法过滤数据的值数组:

constperson={
name:'Jack',
age:25,
job:'programmer',
address:{
city:'Shanghai',
street:'NanjingRoad'
}
};

constjobIsProgrammer=value=>value==='programmer';
constprogrammerValues=Object.values(person).filter(jobIsProgrammer);

console.log(programmerValues);//["programmer"]

在这个例子中,我们使用Object.values()来获取person对象的每一个属性的值,之后再通过 Array.filter() 方法筛选出了符合判断条件的值:占据职业为程序员的值。

三、结合其他方法的用法

object.values() 方法可以和同样方便快捷的方法object.keys()结合使用,一起来获取对象中属性的值和对应的键。

constobject1={a:'value1',b:'value2',c:'value3'};
constkeys=Object.keys(object1);
constvalues=Object.values(object1);
constentries=Object.entries(object1);

console.log(keys);//['a','b','c']
console.log(values);//['value1','value2','value3']
console.log(entries);//[['a','value1'],['b','value2'],['c','value3']]

在这个例子中,我们将对象object1通过Object.keys()和Object.values()以及Object.entries()分别转化为键数组、值数组以及[键,值]对数组。这实际上是一种比较常见的操作,可以在Ajax请求中对多次读取对象的值。

四、使用object.values()迭代对象时,请记得使用for-of循环

虽然我们在上面的很多例子中都使用了forEach()循环,但是实际上使用for-of循环更为安全:因为在迭代对象时,我们不能保证每个对象都支持 forEach() 这个方法,而使用ES6新增的for-of循环可以保证使用的是合法的迭代方法。在代码中使用for-of来迭代对象,可以保证代码的兼容性和稳定性。

varobj={a:1,b:2,c:3};

//for...of循环读取对象的值
for(varvalofObject.values(obj)){
console.log(val);
}//123

五、总结

object.values()方法是一个非常实用的方法,极大地简化了访问对象的属性值的过程,并且兼容性较好。我们可以使用它来迭代对象的属性值,或者过滤对象的值数组,并且可以结合object.keys()方法来同时获取对象的属性和属性值。

原创文章,作者:MJQHK,如若转载,请注明出处:https://www.506064.com/n/372746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MJQHKMJQHK
上一篇 2025-04-25 15:26
下一篇 2025-04-25 15:26

相关推荐

  • JavaScript中的Object.getOwnPropertyDescriptors()

    一、简介 Object.getOwnPropertyDescriptors()是JavaScript中一个非常有用的工具。简单来说,这个方法可以获取一个对象上所有自有属性的属性描述…

    编程 2025-04-25
  • 深入解析object.entries方法

    一、object.entries方法 在ECMAScript2017版规范中,新增了一个方法——Object.entries(),它可以将一个对象的键值对输出成一个数组,其中每个数…

    编程 2025-04-22
  • 深入了解JS Object.keys

    一、基本介绍 Object.keys()是JS的原生函数之一,它返回一个给定对象所有属性的字符数组,该数组包括对象本身的可枚举属性以及从原型链继承的可枚举属性(不包括属性值为und…

    编程 2025-04-12
  • object()takesnoparameters详解

    一、介绍 object()是Python中一个内置函数,可以用于创建一个空对象,并且该对象可以任意添加属性和方法。该函数不需要任何参数。 object()函数返回一个新对象。这个对…

    编程 2025-02-25
  • JS Object 遍历详解

    一、基础遍历方法 JavaScript 中的 Object 是一种键值对数据结构,使用起来非常灵活。在编程过程中,我们经常需要遍历 Object 以获取其中的值或者进行操作。下面将…

    编程 2025-01-27
  • 深入掌握JS中Object.keys()的使用

    一、Object.keys()的基本介绍 Object.keys()方法用于返回一个对象的所有属性名,返回值为一个数组,该数组包含了对象的所有可枚举属性。 该方法的语法如下: Ob…

    编程 2025-01-24
  • 深入理解Thymeleaf中的th:object

    一、th:object的概念 在Thymeleaf中,th:object是一种数据绑定表达式,它可以将一个Java对象与HTML表单元素进行绑定。通过th:object表达式,我们…

    编程 2025-01-24
  • Kotlin Object关键字全方位详解

    一、Object基础 Kotlin的Object关键字在很多方面类似于Java的静态类,但是在某些方面又有所不同。Object关键字允许我们创建单例对象(Singleton Obj…

    编程 2025-01-21
  • Kotlin中的Object 关键字

    一、什么是Kotlin中的Object 关键字 Kotlin是一门静态类型编程语言,其支持面向对象编程及函数式编程。在Kotlin中,Object关键字用于创建一个类,并且只能创建…

    编程 2025-01-20
  • Python正则表达式中的match object对象

    一、match object对象的属性 match object对象可以用于访问匹配的文本、子组、位置信息、命名组等信息,下面是一些常用的属性: group(): 返回匹配的字符串…

    编程 2025-01-14

发表回复

登录后才能评论