JavaScript遍歷對象并獲取key和value的幾種常見方法
在 JavaScript 中,有多種方法可以遍歷對象的屬性并獲取每個屬性的鍵(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() 方法返回一個數組,該數組包含對象自身的所有可枚舉屬性鍵。
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() 方法返回一個數組,數組中的每個元素都是一個包含鍵和值的數組。
const obj = { a: 1, b: 2, c: 3 };
Object.entries(obj).forEach(([key, value]) => {
console.log(key, value);
});
使用 Object.getOwnPropertyNames() 方法
Object.getOwnPropertyNames() 方法返回一個數組,該數組包含對象自身的所有屬性鍵(無論是否可枚舉)。
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() 方法返回一個數組,該數組包含對象自身的所有 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() 方法返回一個數組,該數組包含對象自身的所有屬性鍵(包括不可枚舉屬性和 Symbol 類型的屬性鍵)。
const obj = { a: 1, b: 2, [Symbol('c')]: 3 };
Reflect.ownKeys(obj).forEach(key => {
const value = obj[key];
console.log(key, value);
});
總結
- 使用 for…in 循環(huán)可以遍歷對象的所有可枚舉屬性,但需要配合 hasOwnProperty 方法來排除原型鏈上的屬性。
- Object.keys() 方法返回一個包含對象自身所有可枚舉屬性鍵的數組。
- Object.entries() 方法返回一個包含對象自身所有可枚舉屬性鍵和值的數組。
- Object.getOwnPropertyNames() 方法返回一個包含對象自身所有屬性鍵(無論是否可枚舉)的數組。
- Object.getOwnPropertySymbols() 方法返回一個包含對象自身所有 Symbol 類型屬性鍵的數組。
- Reflect.ownKeys() 方法返回一個包含對象自身所有屬性鍵(包括不可枚舉屬性和 Symbol 類型的屬性鍵)的數組。
到此這篇關于JavaScript遍歷對象并獲取key和value的幾種常見方法的文章就介紹到這了,更多相關JavaScript遍歷對象并獲取key和value內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

