js对象转数组

JavaScript中转换对象为数组有四种常用方法:1. Object.keys()获取键名数组;2. Object.values()提取值数组;3. Object.entries()生成键值对二维数组;4. 结合map()将键值对转为对象数组,适用于列表渲染。

JavaScript中将对象转换为数组有多种方式,具体取决于你想要的数组结构。以下是几种常见的转换方法:

1. 获取对象的键名数组

使用 Object.keys() 可以获取对象所有可枚举属性的键名,返回一个字符串数组。

const obj = { a: 1, b: 2, c: 3 };
const keys = Object.keys(obj);
console.log(keys); // ['a', 'b', 'c']

2. 获取对象的值数组

使用 Object.values() 可以直接提取对象的所有值,生成一个数组。

const obj = { x: 'hello', y: 'world', z: '!' };
const values = Object.values(obj);
console.log(values); // ['hello', 'world', '!']

3. 获取键值对数组(二维数组)

使用 Object.entries() 将对象转为键值对数组,适合用于遍历或转换成 Map。

const obj = { name: 'Alice', age: 25 };
const entries = Object.entries(obj);
console.log(entries);
// [ ['name', 'Alice'], ['age', 25] ]

4. 转换为对象数组(自定义结构)

如果你希望每个属性变成一个对象元素,比如在列表渲染时常用,可以结合 Object.entries()for...in 处理。

const obj = { a: 1, b: 2, c: 3 };
const arr = Object.entries(obj).map(([key, value]) => ({
key,
value
}));
console.log(arr);
// [ { key: 'a', value: 1 }, { key: 'b', value: 2 }, { key: 'c', value: 3 } ]

基本上就这些。根据你的实际需求选择合适的方法。如果是处理 API 数据或准备渲染列表,Object.values()Object.entries() 最常用。注意:这些方法只处理对象自身的可枚举属性,不包括原型链上的属性。