1.使用Object.keys()方法:这是获取对象所有key值的最常用方法。Object.keys(obj)会返回一个包含对象所有可枚举属性的字符串数组,这些字符串即为对象的键。例如:
//
Object.values()// 获取所以的值
let obj = {name: "John", age: 30};
let keys = Object.keys(obj);
console.log(keys); // 输出:["name", "age"]
2.使用for...in循环:通过for...in循环可以遍历对象的所有可枚举属性,包括其原型链上的属性。这种方法可以获取对象的所有属性,包括不可枚举的属性。例如
let obj = {name: "John", age: 30};
for (let key in obj) {
console.log(key); // 输出:name, age
}
3.使用Object.getOwnPropertyNames()方法:这个方法返回一个包含对象所有自身属性的字符串数组,包括不可枚举的属性。例如:
let obj = {name: "John", age: 30};
let propNames = Object.getOwnPropertyNames(obj);
console.log(propNames); // 输出:["name", "age"]
4.如果你需要获取对象内部的所有值,包括嵌套对象,你可以使用递归函数:
function getAllValues(obj) {
let values = [];
for (let key in obj) {
if (typeof obj[key] === 'object') {
values = values.concat(getAllValues(obj[key]));
} else {
values.push(obj[key]);
}
}
return values;
}
const obj = {
key1: 'value1',
key2: {
key2_1: 'value2_1',
key2_2: 'value2_2'
},
key3: 'value3'
};
const allValues = getAllValues(obj);
console.log(allValues); // 输出: ['value1', 'value2_1', 'value2_2', 'value3']