JavaScript遍歷對(duì)象并獲取key和value的幾種常見方法
在 JavaScript 中,有多種方法可以遍歷對(duì)象的屬性并獲取每個(gè)屬性的鍵(key)和值(value)。以下是幾種常見的方法:
使用 for…in 循環(huán)
for…in 循環(huán)用于遍歷對(duì)象的可枚舉屬性(包括原型鏈上的屬性)。
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
if (obj.hasOwnProperty(key)) { // 檢查屬性是否屬于對(duì)象本身,而不是原型鏈上的
const value = obj[key];
console.log(key, value);
}
}
使用 Object.keys() 方法
Object.keys() 方法返回一個(gè)數(shù)組,該數(shù)組包含對(duì)象自身的所有可枚舉屬性鍵。
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ù)組包含對(duì)象自身的所有屬性鍵(無論是否可枚舉)。
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ù)組包含對(duì)象自身的所有 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ù)組包含對(duì)象自身的所有屬性鍵(包括不可枚舉屬性和 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)可以遍歷對(duì)象的所有可枚舉屬性,但需要配合 hasOwnProperty 方法來排除原型鏈上的屬性。
- Object.keys() 方法返回一個(gè)包含對(duì)象自身所有可枚舉屬性鍵的數(shù)組。
- Object.entries() 方法返回一個(gè)包含對(duì)象自身所有可枚舉屬性鍵和值的數(shù)組。
- Object.getOwnPropertyNames() 方法返回一個(gè)包含對(duì)象自身所有屬性鍵(無論是否可枚舉)的數(shù)組。
- Object.getOwnPropertySymbols() 方法返回一個(gè)包含對(duì)象自身所有 Symbol 類型屬性鍵的數(shù)組。
- Reflect.ownKeys() 方法返回一個(gè)包含對(duì)象自身所有屬性鍵(包括不可枚舉屬性和 Symbol 類型的屬性鍵)的數(shù)組。
到此這篇關(guān)于JavaScript遍歷對(duì)象并獲取key和value的幾種常見方法的文章就介紹到這了,更多相關(guān)JavaScript遍歷對(duì)象并獲取key和value內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序?qū)崿F(xiàn)發(fā)送模板消息功能示例【通過openid推送消息給用戶】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)發(fā)送模板消息功能,結(jié)合實(shí)例形式分析了微信小程序?qū)崿F(xiàn)通過openid推送消息給用戶相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
html+js實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器代碼(加減乘除)
下面小編就為大家?guī)硪黄猦tml+js實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器代碼(加減乘除)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07
js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼
這篇文章主要介紹了js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
通過JavaScript實(shí)現(xiàn)CSS和JS文件的動(dòng)態(tài)加載
在現(xiàn)代Web開發(fā)中,動(dòng)態(tài)加載CSS和JavaScript文件是一個(gè)常見的需求,這種技術(shù)可以用來優(yōu)化頁面加載速度,減少初始加載時(shí)間,并提高用戶體驗(yàn),本文將詳細(xì)介紹如何通過JavaScript實(shí)現(xiàn)CSS和JS文件的動(dòng)態(tài)加載,包括不同的加載方法、注意事項(xiàng)以及最佳實(shí)踐2024-11-11

