JavaScript 中的 Object.values()详解
·
1. 基本语法
Object.values(obj)
返回值:返回一个数组,包含对象所有可枚举属性的值
2. 使用示例
const person = {
name: 'Alice',
age: 25,
city: 'New York'
};
const values = Object.values(person);
console.log(values); // ['Alice', 25, 'New York']
3. 拓展:获取键、键值对
const user = {
name: 'Bob',
age: 30,
email: 'bob@example.com'
};
// Object.values() - 获取值
console.log(Object.values(user));
// ['Bob', 30, 'bob@example.com']
// Object.keys() - 获取键
console.log(Object.keys(user));
// ['name', 'age', 'email']
// Object.entries() - 获取键值对
console.log(Object.entries(user));
// [['name', 'Bob'], ['age', 30], ['email', 'bob@example.com']]
4. 重要特性(暂时忽略 有点深奥)
暂时忽略 有点深奥
4.1. 只返回可枚举属性
const obj = Object.create({}, {
visibleProp: {
value: '可见',
enumerable: true
},
hiddenProp: {
value: '隐藏',
enumerable: false
}
});
console.log(Object.values(obj)); // ['可见']
// 只包含可枚举属性
4.2 不包含继承的属性
class Parent {
constructor() {
this.ownProp = '自己的属性';
}
}
Parent.prototype.inheritedProp = '继承的属性';
const child = new Parent();
child.childProp = '子类属性';
console.log(Object.values(child));
// ['自己的属性', '子类属性']
// 不包含原型链上的属性
4.3 键的顺序
const obj = {
10: '十',
2: '二',
1: '一',
b: 'b',
a: 'a'
};
console.log(Object.values(obj));
// ['一', '二', '十', 'b', 'a']
// 数字键按数值排序,字符串键按创建顺序
5. 经典应用场景
表单数据处理
const formData = {
username: 'john_doe',
email: 'john@example.com',
age: 25,
country: 'USA'
};
// 获取所有表单值进行验证
const formValues = Object.values(formData);
console.log(formValues);
// ['john_doe', 'john@example.com', 25, 'USA']
更多推荐



所有评论(0)