1
Amy 原创整理|资料核验:2026-10-30
MDN说明,flatMap先对每个元素执行回调,再将结果展开一层,返回新数组。它不是递归展开所有嵌套层级的工具。
教学示例:[2, 5].flatMap(x => [x, x + 1])得到[2, 3, 5, 6];若回调改成x => [[x]],结果则是[[2], [5]],里面的小数组仍保留。回调返回空数组可不产生输出,返回多个元素则可让一个输入对应多个输出。
Amy建议处理列表前先画出期望的数据层级,再判断是否只需要展开一层。特别是回调里又包了一层方括号时,应检查这是有意保留分组,还是无意增加嵌套;不要仅凭函数名以为结果必然是完全平铺的列表。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap