• 数组方法-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方法把大对象(所有的课程)中(报名人数)这个属性的值拿出来,然后遍历统计。
  • 相关阅读:
    yocto/bitbake 学习资源
    QEMU/KVM学习资源
    ubuntu 中创建和删除用户
    git 重命名本地和远程分支
    Ubuntu 上搭建 FTP 服务器
    gdb 常见用法
    git log 显示与特定文件相关的 commit 信息
    基于 qemu system mode 运行 arm 程序
    基于 qemu user mode 运行 aarch64 程序
    checking in(airport)
  • 原文地址:https://www.cnblogs.com/gshao/p/9601813.html
Copyright © 2020-2023  润新知