map是javascript数组方法,遍历原数组并返回等长新数组,不修改原数组;回调函数接收元素、索引和原数组,需显式return,常用于数据转换、属性提取及链式操作。

map 是 JavaScript 数组的内置方法,用于遍历数组并返回一个**新数组**,新数组的每个元素是原数组对应元素经过指定函数处理后的结果。它不会修改原数组。
基本语法和核心特点
调用方式:array.map(callback(element, index, array))
- callback:必需,每次遍历时执行的函数
- element:当前遍历的元素值(必传)
- index:当前元素的索引(可选)
- array:原数组本身(可选)
- 返回值是等长的新数组,长度与原数组一致
常见使用场景和写法
把数字数组全部翻倍:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
const doubled = nums.map(n => n * 2); // [2, 4, 6]
提取对象数组中的某个属性:
const users = [{name: 'Alice', age: 25}, {name: 'Bob', age: 30}];const names = users.map(u => u.name); // ['Alice', 'Bob']
带索引的处理(例如添加序号):
const fruits = ['apple', 'banana'];const labeled = fruits.map((f, i) => `${i + 1}. ${f}`); // ['1. apple', '2. banana']
注意不要混淆 map 和 forEach
-
map 有返回值,必须用来生成新数组;不返回值或返回 undefined 会导致新数组中对应位置为
undefined -
forEach 没有返回值(返回
undefined),只适合纯副作用操作(如打印、发请求),不能用于转换数据 - 如果忘了 return,新数组会全是
undefined:[1,2].map(x => { x * 2 })→[undefined, undefined]
可以链式调用,配合 filter、sort 等
先筛选再转换:
const scores = [85, 92, 78, 96, 65];const highGrades = scores
.filter(s => s >= 90)
.map(s => `A: ${s}`); // ['A: 92', 'A: 96']
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










