在JavaScript中,map 是一个数组方法,用于创建一个新数组,*该数组是通过对原数组中的每个元素执行指定函数而产生*的
。map方法不会改变原数组。
以下是 map
方法的基本语法:
let newArray = originalArray.map(function(currentValue, index, array) {
// 返回新的元素
});
currentValue
是当前被处理的数组元素。index
是当前元素的索引(可选)。array
是调用map
的原数组(可选)。
使用箭头函数:使用更简洁的语法。
numbers.map(<每次遍历到的数组中的元素> =>
(对每次遍历到的元素处理,返回的是处理完的元素));
let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(num => num * 2);
console.log(doubled); // 输出: [2, 4, 6, 8, 10]
使用示例
- 简单示例:将数组中的每个元素乘以2。
let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(function(num) {
return num * 2;
});
console.log(doubled); // 输出: [2, 4, 6, 8, 10]
- 处理对象数组:如果有一个对象数组,可以从每个对象中提取特定的属性。
let users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
let names = users.map(user => user.name);
console.log(names); // 输出: ['Alice', 'Bob', 'Charlie']
- 结合其他数组方法:可以将
map
与其他方法结合使用,如filter
和reduce
。
let numbers = [1, 2, 3, 4, 5];
let result = numbers
.map(num => num * 2) // 将每个元素乘以2
.filter(num => num > 5); // 只选择大于5的元素
console.log(result); // 输出: [6, 8, 10]
注意事项
map
方法始终返回一个新数组
(所以要用一个变量接收),原数组不会被修改
。- 如果对非数组调用
map
,将会抛出一个 TypeError。