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

如何转换数组?能否使用map方法实现指定数组结构转换?

解决方案:数组结构转换

当然可以实现这个转换,而且有几种不同的方式,根据你的实际场景选就行~

场景1:原数组只有单个元素(就是你给出的情况)

这种情况最直接的方式根本不需要用map,直接提取第一个对象的属性值就搞定了:

const originalArr = [ { foo:{ name: 'One', value: 10 }, bar: { name: 'Two', value: 20 } } ];
const transformedArr = Object.values(originalArr[0]);
console.log(transformedArr); 
// 输出: [ { name: 'One', value: 10 }, { name: 'Two', value: 20 } ]

Object.values()会把对象的所有属性值提取成一个数组,刚好完美匹配你的需求。

场景2:原数组可能有多个类似的对象

如果你的数组以后可能扩展成多个元素(比如[{foo:..., bar:...}, {baz:..., qux:...}]),那用flatMap就很合适,它能同时完成映射和展平的操作:

const originalArr = [
  { foo:{ name: 'One', value: 10 }, bar: { name: 'Two', value: 20 } },
  { baz:{ name: 'Three', value: 30 }, qux: { name: 'Four', value: 40 } }
];
const transformedArr = originalArr.flatMap(item => Object.values(item));
console.log(transformedArr);
// 输出: [ { name: 'One', value:10 }, { name:'Two', value:20 }, { name:'Three', value:30 }, { name:'Four', value:40 } ]

如果你非要用map的话也可以,只是map会返回一个二维数组,需要再用flat()展平一层:

const transformedArr = originalArr.map(item => Object.values(item)).flat();

总结

  • 单个元素数组:用Object.values(originalArr[0])最简洁高效
  • 多个元素数组:优先用flatMap,或者map+flat组合也能实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:37:33