zoukankan      html  css  js  c++  java
  • 数组方法-map方法

     1 /*场景1:假定有一个数值数组(A),将A数组中的值以双倍的形式放到B数组 */
     2  var numbers = [1,2,3];
     3  var doubledNumbers = [];
     4 
     5 // es5中的办法
     6 for(var i = 0; i < numbers.length; i++){
     7   doubledNumbers.push(numbers[i] * 2);
     8 }
     9 console.log(doubledNumbers);//数组打印出来
    10 
    11 // es5 中的遍历
    12 for(var i = 0; i < doubledNumbers.length; i++){
    13   console.log(doubledNumbers[i]); //把数组中的值一个个打印出来
    14 }
    15 
    16 
    17 // es6 map方法  
    //map方法里面用到迭代器函数,并用形参来接受numbers数组里面的值,然后返回number*2到我们定义的新数组doubled中。
    18 var doubled = numbers.map(function(number){ 19 return number * 2; 20 }) 21 console.log(doubled); 22 23 // es6 forEach遍历 24 doubled.forEach(function(number){ 25 console.log(number); 26 })
     1 /* 场景2 :假定有一个对象数组(A),将A数中对象某个属性的值存储到B数组中*/
     2 var cars = [
     3   {model:"Buick",price:"CHEAP"},
     4   {model:"BMW",price:"expensive"}
     5 ];
     6 
     7 var prices = cars.map(function(car){
     8     return car.price;
     9 })
    10 console.log(prices);
       

     map
    这里的map不是“地图”的意思,而是指“映射”,也就是原数组被“映射”成对应新数组。[].map(); 基本用法跟forEach方法类似:

    callback的参数也类似:

    [].map(function(value, index, array) {
        // ...
    });

    但是map需要返回值,如果不给,默认返回undefined, map 返回一个新的数组。

    使用场景:比如腾讯课堂里面有许多老师的课程,我们要统计所有课程报名人数。怎么办呢?
    我们可以把(所有课程)当作一个大的对象,这个对象里面包含许多小的对象-(每个老师的课程)。
    每个(老师的课程)这个小对象有(报名人数)这个属性,我们可以用map方法把大对象(所有的课程)中(报名人数)这个属性的值拿出来,然后遍历统计。
  • 相关阅读:
    ASP.NET中使用javascript
    遍历DataList控件
    史上最强劲之android模拟器命令详解
    Android开发环境配置简介
    Android模拟器adb命令介绍
    听一名普通android应用开发人员谈:怎样成为一名Android开发者
    android模拟器安装及优化(集锦)
    Ubuntu 快捷键集锦
    smplayer 中文字幕乱码,进度条及拖放MKV
    如何在Windows下搭建Android开发环境
  • 原文地址:https://www.cnblogs.com/gshao/p/9601813.html
Copyright © 2011-2022 走看看