zoukankan      html  css  js  c++  java
  • JavaScript中的map()函数

    概述
    Array.map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,同时不会改变原来的数组。

    用法

    Array.map(callback);

    示例

    //简单数组
    const arr = [1, 3, 4, 5, 6, 7, 8, 10];
    
    const cube = (num) => {
    return num * num;
    }
    
    const res = arr.map(cube);//[ 1, 9, 16, 25, 36, 49, 64, 100 ]
    
    // or
    
    const res = arr.map((num)=>{
    return num * num;
    })
    //[ 1, 9, 16, 25, 36, 49, 64, 100 ]
    
    //对象数组和构造器
    const OjbArray = [{
    name: 'a',
    age: 18,
    isLikeEat: true,
    isLikeSleep: true
    }, {
    name: 'b',
    age: 19,
    isLikeEat: true,
    isLikeSleep: true
    }, {
    name: 'c',
    age: 22,
    isLikeEat: true,
    isLikeSleep: true
    }];
    
    const Person = (target) => {
    return {
    name: target.name || 'default',
    age: target.age || 18,
    _eat: function() {
    console.log(target.isLikeEat ? 'i like eat' : 'i dont like eat');
    },
    _sleep: function() {
    console.log(target.isLikeSleep ? 'i like sleep' : 'i dont like sleep')
    }
    }
    }
    
    let newPersons = OjbArray.map(Person);
    console.log((newPerso// [ { name: 'a// age: 18,
    
    // _eat: [Function: _eat],
    // _sleep: [Function: _sleep] },
    // { name: 'b',
    // age: 19,
    // _eat: [Function: _eat],
    // _sleep: [Function: _sleep] },
    // { name: 'c',
    // age: 22,
    // _eat: [Function: _eat],
    // _sleep: [Function: _sleep] } ]

    注意 ⚠️

    当和parseInt()函数配合使用 将字符转成数字的时候,可直接

    ['1', '2'].map(str => parseInt(str));
    //or
    ['1', '2'].map(Number)

    本质上是用元素作为函数参数去调用函数,所以无需加上参数

    //这种写法是错误的
    const arr = [1, 3, 4, 5, 6, 7, 8, 10];
    
    const cube = (num) => {
    return num * num;
    }
    
    const res = arr.map(cube(num))

    原文链接:https://blog.csdn.net/ruffaim/article/details/82260280

  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/planetwithpig/p/11733281.html
Copyright © 2011-2022 走看看