javascript中array的map方法的使用

场景:

  你有一个数组,你想对数组中的每个元素做点事情

例如:

  你有一个数组:[1,2,3,4,5,6,7],你想输出这个数组的每个元素的立方

  一种方法是遍历这个数组,做立方计算后赋给新的数组,像下面这样:

 1 'use strict';
 2 function mySquare(arg){
 3     // return arg * arg * arg;
 4  return Math.pow(arg,3);
 5 } 
 6 var myArr = [1,2,3,4,5,6,7];
 7 var myNewArr = [];
 8 for(var i in myArr){
 9     myNewArr[i] = mySquare(myArr[i]);
10 }
11 console.log(myNewArr);

但如果用map方法,将更加简便,像下面这样:

1 'use strict';
2 function mySquare(arg){
3     // return arg * arg * arg;
4     return Math.pow(arg,3);
5 } 
6 var myArr = [1,2,3,4,5,6,7];
7 var myNewArr = myArr.map(mySquare);
8 console.log(myNewArr);

是不是很方便!

map方法的定义如下:

  map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

  map() 方法按照原始数组元素顺序依次处理元素

  map() 不会对空数组进行检测

  map() 不会改变原始数组

map语法:

  array.map(function(currentValue,index,arr), thisValue)

  参数说明:

    function(currentValue, index,arr)  必须。函数,数组中的每个元素都会执行这个函数

        函数参数:

            currentValue  必须。当前元素的值

            index  可选。当期元素的索引值

            arr  可选。当期元素属于的数组对象

    thisValue  可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"

map方法还可以做很多事情:

比如,将数组元素转换成字符串:

1 'use strict';
2 var myArr = [1,2,3,4,5,6,7];
3 var myNewArr = myArr.map(String);
4 console.log(myNewArr);

发挥你的想象,一切皆有可能!

 

posted @ 2017-08-29 14:30  云里飞  阅读(1810)  评论(0编辑  收藏  举报