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']
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐