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/zh-hant/n/372746.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MJQHK的頭像MJQHK
上一篇 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

發表回復

登錄後才能評論