Map(映射)是一种操作数组的非常有用的方法,它通过对一个数组中的每个元素进行指定操作而生成一个新的数组,这个新的数组会与原来的数组元素一一对应。在JavaScript中,map是非常常用的数组操作方法之一,本文将介绍三种典型的map循环方法。
一、常规循环
JavaScript中最基础的方法当然就是通过for循环依次遍历数组,然后对每一个元素进行操作,其中的代码就可以是一个变量名加上.map()方法,具体代码如下:
```javascript
const arr = [1,2,3,4,5];
const newArray = [];
for(let i = 0; i < arr.length; i++){
newArray[i] = arr[i] * 2;
}
console.log(newArray); // [2,4,6,8,10]
```
按照常规for循环的写法,在数组遍历出来之后,创建一个新的空数组,之后需要通过新数组的下标来将每个新的值存入到这个新数组中。与forEach的区别在于,map返回一个结果集数组,而forEach没有返回值,只用来操作原数组元素。
二、使用map方法
ES6或者ES2015的时候给我们带来了一项新的特性,即可以使用map方法来进行循环操作。它的具体代码可以简洁很多,如下所示:
```javascript
const arr = [1,2,3,4,5];
const newArray = arr.map(function(item){
return item * 2;
});
console.log(newArray); // [2,4,6,8,10]
```
这种方法的优势在于简洁易懂,并且调用了map方法后,操作的回调函数中可以随便写需要的操作,这样也就省去了创建新数组的步骤。只需要在map方法中再返回子函数的操作结果,将它赋值给新的数组即可。
三、使用扩展运算符实现
ES6为我们提供的另外一个语言特性是,我们可以通过扩展运算符(...)将一个数组的元素转移至另外一个新的数组中去。具体代码如下:
```javascript
const arr = [1,2,3,4,5];
const newArray = [...arr].map(item => item * 2);
console.log(newArray); // [2,4,6,8,10]
```
通过扩展运算符,我们可以让代码更加清晰,匿名函数中的代码更加明确,从而更加便于理解。
微信扫一扫,领取最新备考资料