JavaScript遍歷對象并獲取key和value的幾種常見方法
在 JavaScript 中,有多種方法可以遍歷對象的屬性并獲取每個(gè)屬性的鍵(key)和值(value)。以下是幾種常見的方法:
使用 for…in 循環(huán)
for…in 循環(huán)用于遍歷對象的可枚舉屬性(包括原型鏈上的屬性)。
const obj = { a: 1, b: 2, c: 3 }; for (const key in obj) { if (obj.hasOwnProperty(key)) { // 檢查屬性是否屬于對象本身,而不是原型鏈上的 const value = obj[key]; console.log(key, value); } }
使用 Object.keys() 方法
Object.keys() 方法返回一個(gè)數(shù)組,該數(shù)組包含對象自身的所有可枚舉屬性鍵。
const obj = { a: 1, b: 2, c: 3 }; Object.keys(obj).forEach(key => { const value = obj[key]; console.log(key, value); });
使用 Object.entries() 方法
Object.entries() 方法返回一個(gè)數(shù)組,數(shù)組中的每個(gè)元素都是一個(gè)包含鍵和值的數(shù)組。
const obj = { a: 1, b: 2, c: 3 }; Object.entries(obj).forEach(([key, value]) => { console.log(key, value); });
使用 Object.getOwnPropertyNames() 方法
Object.getOwnPropertyNames() 方法返回一個(gè)數(shù)組,該數(shù)組包含對象自身的所有屬性鍵(無論是否可枚舉)。
const obj = { a: 1, b: 2, c: 3 }; Object.getOwnPropertyNames(obj).forEach(key => { const value = obj[key]; console.log(key, value); });
使用 Object.getOwnPropertySymbols() 方法
Object.getOwnPropertySymbols() 方法返回一個(gè)數(shù)組,該數(shù)組包含對象自身的所有 Symbol 類型的屬性鍵。
const obj = { a: 1, b: 2, [Symbol('c')]: 3 }; Object.getOwnPropertySymbols(obj).forEach(sym => { const value = obj[sym]; console.log(sym, value); });
使用 Reflect.ownKeys() 方法
Reflect.ownKeys() 方法返回一個(gè)數(shù)組,該數(shù)組包含對象自身的所有屬性鍵(包括不可枚舉屬性和 Symbol 類型的屬性鍵)。
const obj = { a: 1, b: 2, [Symbol('c')]: 3 }; Reflect.ownKeys(obj).forEach(key => { const value = obj[key]; console.log(key, value); });
總結(jié)
- 使用 for…in 循環(huán)可以遍歷對象的所有可枚舉屬性,但需要配合 hasOwnProperty 方法來排除原型鏈上的屬性。
- Object.keys() 方法返回一個(gè)包含對象自身所有可枚舉屬性鍵的數(shù)組。
- Object.entries() 方法返回一個(gè)包含對象自身所有可枚舉屬性鍵和值的數(shù)組。
- Object.getOwnPropertyNames() 方法返回一個(gè)包含對象自身所有屬性鍵(無論是否可枚舉)的數(shù)組。
- Object.getOwnPropertySymbols() 方法返回一個(gè)包含對象自身所有 Symbol 類型屬性鍵的數(shù)組。
- Reflect.ownKeys() 方法返回一個(gè)包含對象自身所有屬性鍵(包括不可枚舉屬性和 Symbol 類型的屬性鍵)的數(shù)組。
到此這篇關(guān)于JavaScript遍歷對象并獲取key和value的幾種常見方法的文章就介紹到這了,更多相關(guān)JavaScript遍歷對象并獲取key和value內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解
這篇文章主要為大家介紹了easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能
這篇文章主要介紹了JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能,本文給出了HTML5解決方案、老舊瀏覽器的寫法等方法,需要的朋友可以參考下2014-11-11批量實(shí)現(xiàn)面向?qū)ο蟮膶?shí)例代碼
本文為大家詳細(xì)介紹下面向?qū)ο蟮睦^承以及如何實(shí)現(xiàn)批量實(shí)現(xiàn)面向?qū)ο螅信d趣的可以參考下哈,希望對大家有所幫助2013-07-07深入淺析javascript立即執(zhí)行函數(shù)
在Javascript中,任何function在執(zhí)行的時(shí)候都會創(chuàng)建一個(gè)執(zhí)行上下文,因?yàn)闉閒unction聲明的變量和function有可能只在該function內(nèi)部,這個(gè)上下文,在調(diào)用function的時(shí)候,提供了一種簡單的方式來創(chuàng)建自由變量或私有子function。2015-10-10