JavaScript的map()方法用于对数组每个元素执行操作并返回新数组,原数组不变;它接收回调函数(常用当前元素和索引),强制返回新数组,语义清晰且不可替代。

JavaScript 的 map() 方法是用来对数组中每个元素执行相同操作,并返回一个新数组的工具,原数组保持不变。 它不修改原数组,而是“映射”出一个结构一致、内容按规则变换后的新数组。
map 的基本用法
调用方式:arr.map(callback),其中 callback 是一个函数,接收三个参数(常用前两个):
- 当前元素(必填)
- 当前索引(可选)
- 原数组本身(很少用)
例如:把数字数组全部翻倍
const nums = [1, 2, 3];const doubled = nums.map(x => x * 2);
// doubled 是 [2, 4, 6],nums 还是 [1, 2, 3]
map 和 for 循环的区别
map 强制返回新数组,语义更清晰;for 更灵活但容易写错或漏返回。比如想提取对象数组中的某个字段:
立即学习“Java免费学习笔记(深入)”;
const users = [{name: 'Alice'}, {name: 'Bob'}];const names = users.map(u => u.name); // ['Alice', 'Bob']
用 for 写就得手动新建数组、push,而 map 一步到位。
常见误区提醒
-
map不会跳过空位(如[1, , 3]),但会保留undefined对应位置 - 如果回调没写
return,对应位置结果是undefined - 它只适用于数组,类数组对象(如
arguments)需先转成数组再用
基本上就这些 —— 简单、纯粹、不可替代的数组变换利器。











