You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象数组转换为值数组?

将对象数组转换为值数组的几种方法

以下是几种实现把对象数组转换为一维值数组的方案,对应你给出的示例场景:

方法一:使用flatMap + Object.values(推荐)

这是现代JavaScript中最简洁的写法,一步完成转换:

const cars = [{id: "1", name: "Beetle", color: "Green"}, {id: "2", name: "Job", color: "Blue"}, {id: "3", name: "Dragon", color: "Orange"}];
const newCars = cars.flatMap(car => Object.values(car));
console.log(newCars); // 输出: ["1", "Beetle", "Green", "2", "Job", "Blue", "3", "Dragon", "Orange"]
  • Object.values(car)提取单个对象的所有值,返回对应的值数组(比如第一个对象会得到["1", "Beetle", "Green"])
  • flatMap先对每个对象执行映射操作,再自动将所有子数组合并为一维数组

方法二:使用reduce + concat(兼容旧环境)

如果需要兼容不支持flatMap的旧运行环境,可以用reduce实现:

const cars = [{id: "1", name: "Beetle", color: "Green"}, {id: "2", name: "Job", color: "Blue"}, {id: "3", name: "Dragon", color: "Orange"}];
const newCars = cars.reduce((result, car) => result.concat(Object.values(car)), []);
console.log(newCars); // 得到目标数组
  • 以空数组[]作为初始累加器
  • 遍历每个对象,将当前对象的值数组通过concat合并到累加器中

方法三:使用forEach + 扩展运算符(直观易理解)

适合初学者的直观写法,逻辑清晰:

const cars = [{id: "1", name: "Beetle", color: "Green"}, {id: "2", name: "Job", color: "Blue"}, {id: "3", name: "Dragon", color: "Orange"}];
const newCars = [];
cars.forEach(car => {
  newCars.push(...Object.values(car));
});
console.log(newCars);
  • 先创建空数组newCars
  • 遍历每个对象,用扩展运算符...把值数组的元素逐个添加到newCars中

内容的提问来源于stack exchange,提问作者airsoftFreak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:01:17