Array.map() 映射出新数组

最后更新:2026-09-09

Array.map() 映射出新数组

map 对每个元素执行一次回调,用回调的返回值按顺序组成一个**等长**的新数组;原数组不变。把一组数据转换成另一组数据的标配方法。

分类数组
ES 版本ES5(2009)

📝 语法

const 新数组 = 数组.map((元素, 下标, 原数组) => 转换结果);

⚙️ 参数

callback转换函数:返回值会成为新数组对应位置的元素。
thisArg可选。执行 callback 时的 this 值。

返回值:与原数组等长的新数组。

是否修改原值:否(返回新值)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

[ 2, 4, 6, 8 ]
[ '张三', '李四' ]
[ '1. 张三', '2. 李四' ]
⚠️ 警告 map 的回调必须有返回值——箭头函数 `x => { x * 2 }`(带花括号没有 return)会得到全是 undefined 的数组。
💡 提示 map 等长、filter 变短、reduce 变单值——三者是数组数据处理的三板斧。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Array.map() v1 v12 v1.5 v3 v10.5
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Qmap 和 forEach 有什么区别?
Amap 有返回值(新数组),用于数据转换;forEach 无返回值,纯执行副作用。需要拿到结果一定用 map。
Qmap 可以跳过元素吗?
Amap 总是等长输出,不能跳过——先 filter 再 map,或者回调里返回原元素。
Qmap 会修改原数组吗?
A不会。map 返回新数组。但如果元素是对象且回调里修改了对象属性,原数组的对象也会变(引用共享)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏