在 JavaScript 中,对象是一种非常重要的数据类型。ES7 提供了两个非常实用的对象方法:Object.keys() 和 Object.values(),它们可以帮助我们更方便地操作对象。
Object.keys()
Object.keys() 方法返回一个由对象的属性名组成的数组。这个数组的顺序与对象属性的定义顺序相同。
语法
Object.keys(obj)
参数
- obj:要返回其所有可枚举属性的对象。
返回值
一个表示给定对象的所有属性的字符串数组。
示例代码
// javascriptcn.com 代码示例 const obj = { name: 'John', age: 30, gender: 'male' }; const keys = Object.keys(obj); console.log(keys); // ['name', 'age', 'gender']
Object.values()
Object.values() 方法返回一个由对象的属性值组成的数组。这个数组的顺序与对象属性的定义顺序相同。
语法
Object.values(obj)
参数
- obj:要返回其所有可枚举属性的对象。
返回值
一个表示给定对象的所有属性值的数组。
示例代码
// javascriptcn.com 代码示例 const obj = { name: 'John', age: 30, gender: 'male' }; const values = Object.values(obj); console.log(values); // ['John', 30, 'male']
案例分析
假设我们有一个数组,里面存储了很多个对象,每个对象都有一个 name 和 age 属性。我们需要将这个数组按照 age 属性从小到大排序。
示例代码
// javascriptcn.com 代码示例 const arr = [ { name: 'John', age: 30 }, { name: 'Tom', age: 20 }, { name: 'Mary', age: 25 } ]; arr.sort((a, b) => a.age - b.age); console.log(arr);
上面的代码使用了 sort() 方法对数组进行排序,其中的比较函数使用了对象的 age 属性进行比较。这个方法可以实现我们的需求,但是代码比较冗长,不够简洁。我们可以使用 Object.values() 方法来简化代码。
示例代码
// javascriptcn.com 代码示例 const arr = [ { name: 'John', age: 30 }, { name: 'Tom', age: 20 }, { name: 'Mary', age: 25 } ]; arr.sort((a, b) => Object.values(a)[1] - Object.values(b)[1]); console.log(arr);
这个代码使用了 Object.values() 方法来获取对象的属性值,然后使用属性值进行比较。这个方法代码更加简洁明了。
总结
Object.keys() 和 Object.values() 方法是非常实用的对象方法,它们可以帮助我们更方便地操作对象,写出更简洁明了的代码。在实际开发中,我们可以根据具体需求选择使用这两个方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65103d9b95b1f8cacd8d4cb6