一、使用Object.keys()
Object.keys()方法会返回一个由给定对象的全部可枚举属性名组成的数组。
具体步骤:
const obj = { a: 1, b: 2, c: 3 }; const arr = Object.keys(obj); console.log(arr); // ["a", "b", "c"]
说明:
我们通过Object.keys()方法将对象的属性名转换为数组。
需要注意的是,Object.keys()只能转换对象的属性名,不能转换属性值,如果要转换属性值,需要使用其他方法。
二、使用Object.values()
Object.values()方法会返回一个给定对象自身的所有可枚举属性值的数组。
具体步骤:
const obj = { a: 1, b: 2, c: 3 }; const arr = Object.values(obj); console.log(arr); // [1, 2, 3]
说明:
Object.values()方法可以将对象的属性值转换为数组,但是仅仅限于对象的自身属性,不包括继承的属性。
三、使用Object.entries()
Object.entries()方法会返回一个给定对象自身可枚举属性的键值对数组。
具体步骤:
const obj = { a: 1, b: 2, c: 3 }; const arr = Object.entries(obj); console.log(arr); // [["a", 1], ["b", 2], ["c", 3]]
说明:
Object.entries()方法将对象的属性名和属性值以键值对的形式存储在数组中。
需要注意的是,这里也只能转换对象的自身属性。
四、使用Array.from()
Array.from()方法会将一个类数组对象或可迭代对象转换为真正的数组。
具体步骤:
const obj = { 0: "a", 1: "b", 2: "c", length: 3 }; const arr = Array.from(obj); console.log(arr); // ["a", "b", "c"]
说明:
这种方式可以应用于类数组对象(例如函数的arguments对象),也可以应用于可迭代对象(例如Set和Map),将其转换为真正的数组。
需要注意的是,只有可迭代对象才能被Array.from()方法转换为数组,因为真正的数组可以被迭代。
五、使用扩展运算符
扩展运算符(...)能够将一个可迭代对象转换为一个数组。
具体步骤:
const obj = { a: 1, b: 2, c: 3 }; const arr = [...Object.values(obj)]; console.log(arr); // [1, 2, 3]
说明:
使用扩展运算符也能将一个可迭代对象(例如使用Object.values()方法转换后的数组)转换为真正的数组。
需要注意的是,扩展运算符和Array.from()方法类似,只能将可迭代对象(例如数组、Set、Map)转换为真正的数组,不能将普通对象转换为数组。