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

JavaScript如何使用flatMap将多个数组合并为单个一维数组

问题原因

你之前使用concat得到重复结果,是因为每次执行list.concat(list)时,都是将当前单个用户所在的数组和自身做拼接,相当于每个子数组都复制了一遍内部的用户对象,既没有完成跨子数组的合并,还生成了重复条目。

实现代码

要求使用flatMap实现的方案如下,假设你存放所有独立单用户数组的变量名为userListContainer(替换为你实际使用的变量名即可),无论内部子数组数量是多少都能正常运行,不需要手动给数组加逗号、不需要使用展开运算符、不需要额外转存中间变量:

const mergedUserList = userListContainer.flatMap(singleItemArr => singleItemArr);
实现逻辑说明
  • flatMap的执行逻辑等价于先对数组执行map遍历,再对遍历结果执行深度为1的flat压平操作
  • 你的每一个子元素都是长度为1的用户对象数组,遍历过程中直接返回当前子数组,压平后就会把每个子数组内的用户对象直接提取到外层,最终得到一维的纯用户对象数组
  • 该方案对子数组数量没有要求,多于或少于4个都能得到正确结果

执行后得到的结构和你预期完全一致:

[
    {
        id: '46892319372',
        user_name: 'testerOne',
        identifier: '20202'
    },
    {
        id: '15243879678',
        user_name: 'testerTwo',
        identifier: '20201'
    },
    {
        id: '02857428679',
        user_name: 'testerThree',
        identifier: '20203'
    },
    {
        id: '65284759703',
        user_name: 'testerFour',
        identifier: '20204'
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 00:15:44