You need to enable JavaScript to run this app. JavaScript如何从数组各元素中提取合并指定属性的所有值
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何从数组各元素中提取合并指定属性的所有值

对象数组提取所有words字段整合为一维数组的实现

先修正你给出的原始测试数据的语法问题(字符串引号缺失)后,常见可落地的实现方式有三种:

  • 写法1:flatMap 实现(现代JS环境最简洁)
    // 修正语法错误后的原始数据源
    const sourceArr = [
      {
        words: ['help', 'good'],
        glass: 'empty'
      },
      {
        words: ['low', 'cool'],
        glass: 'full'
      }
    ];
    // 一行完成提取整合
    const result = sourceArr.flatMap(item => item.words);
    // 输出结果:['help', 'good', 'low', 'cool']
    
    核心逻辑:flatMap会先遍历数组执行映射,再把映射返回的内容做1层扁平化,刚好适配单层级提取words的场景,无需额外拼接操作。
  • 写法2:reduce 实现(全环境兼容,无版本限制)
    const result = sourceArr.reduce((acc, cur) => acc.concat(cur.words), []);
    
    核心逻辑:以空数组为遍历初始值,每遍历到一个对象,就把它的words字段内容拼接到累计结果中,遍历完成直接拿到整合后的一维数组,兼容性强,可适配老旧运行环境。
  • 写法3:普通循环拼接(逻辑最直观,适合入门理解)
    const result = [];
    for (let i = 0; i < sourceArr.length; i++) {
      result = result.concat(sourceArr[i].words);
    }
    

注意:你最初给出的测试数据存在语法问题,比如['help','good]中good后漏写了闭合单引号,运行前必须修正为合法JS结构,否则会直接触发语法报错无法执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 03:36:05