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

JavaScript如何将单属性对象数组转换为属性值组成的数组

问题原因

你使用Object.values(arr)没有得到预期结果,是因为Object.values()的作用是提取传入对象本身的所有可枚举属性值。你传入的arr是数组类型,它的可枚举属性就是每个索引对应的元素——也就是你定义的6个带name属性的对象,所以执行后返回的仍然是原对象数组,不会深入到每个对象内部提取name属性值。

正确实现方案

最简洁、语义化的实现方式是使用数组原生的map()方法,该方法会遍历原数组每一项,根据回调函数的返回值组装成新数组,不会修改原数组:

let arr = [
    { name: 'AAA' },
    { name: 'BBB' },
    { name: 'CCC' },
    { name: 'DDD' },
    { name: 'EEE' },
    { name: 'FFF' }
];
const new_arr = arr.map(item => item.name);

执行上述代码后,new_arr就是你期望的结果:['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF']。

其他可选写法

  • 适配不支持ES6箭头函数的老旧环境:
var new_arr = arr.map(function(item) {
  return item.name;
});
  • 基础for循环实现(无ES5+API依赖,全JS环境兼容):
var new_arr = [];
for (var i = 0; i < arr.length; i++) {
  new_arr.push(arr[i].name);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:15:42