ES6 Object.keys()、Object.values()、 和 Object.entries() 区别

Object.keys()、 Object.values(),、和 Object.entries() 是 JavaScript 中用于处理对象的三个非常有用的方法。它们各自的功能和返回的结果有所不同,但都是用来获取对象的某些特定信息。以下是它们之间的详细区别:

1、Object.keys()

Object.keys() 方法返回一个由指定对象的所有可枚举属性的属性名(包括Symbol值作为名称的属性)组成的数组,数组中属性的顺序与使用 for...in 循环的顺序相同(两者的主要区别是 for-in 循环还会枚举其原型链上的属性)。

示例

const obj = {
 a: 1,
 b: 2,
 c: 3,
 d: 4
};

const keys = Object.keys(obj);
console.log(keys); // 输出: ["a", "b", "c", "d"]

2、Object.values()

Object.values() 方法返回一个给定对象自身可枚举属性的属性值数组,其排列与使用 for...in 循环的顺序一致(两者的主要区别是 for-in 循环还会枚举其原型链上的属性)。

示例

 

const obj = {
 a: 1,
 b: 2,
 c: 3,
 d: 4
};

const values = Object.values(obj);
console.log(values); // 输出: [1, 2, 3, 4]

3、Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环的顺序一致(两者的主要区别是 for-in 循环还会枚举其原型链上的属性)。其返回数组中的每个元素都是一个包含两个元素的类数组:第一个元素是属性名(key),第二个元素是属性值(value)。

示例

const obj = {
 a: 1,
 b: 2,
 c: 3,
 d: 4
};

const entries = Object.entries(obj);
console.log(entries); // 输出: [["a", 1], ["b", 2], ["c", 3], ["d", 4]]

 

总结

  • Object.keys() 返回对象的属性名数组。

  • Object.values() 返回对象的属性值数组。

  • Object.entries() 返回对象的键值对数组,每个键值对都是一个包含两个元素的数组。

这三个方法在处理对象时都非常有用,特别是在你需要遍历对象的属性或值,或者需要将对象的属性或值转换为数组时。因为经常使用,记录一下。

 

你可能感兴趣的:(es6,前端,ecmascript,javascript)