美文网首页
forEach、map、reduce、filter、call、a

forEach、map、reduce、filter、call、a

作者: 复古先生 | 来源:发表于2017-12-29 14:31 被阅读0次

    [1,2,3].map(function(value,index){console.log(value)})

    应题主要求来个形象的:

    假设我们有一个数组,每个元素是一个人。你面前站了一排人。

    foreach 就是你按顺序一个一个跟他们做点什么,具体做什么,随便:

    people.forEach(

        function(dude)

            {

                dude.pickUpSoap();

            }    

    );

    map 就是你手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去。结束的时候你获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的顺序一一对应。

    varwallets=people.map(

        function(dude){

            returndude.wallet;

        }

    );

    reduce 就是你拿着钱包,一个一个数过去看里面有多少钱啊?每检查一个,你就和前面的总和加一起来。这样结束的时候你就知道大家总共有多少钱了。

    vartotalMoney=wallets.reduce(

        function(countedMoney,wallet){

            returncountedMoney+wallet.money;

        },0

    );

     filter 就是你一个个钱包数过去的时候,里面钱少于 100 块的不要(留在原来的盒子里),多于 100 块的丢到一个新的盒子里。这样结束的时候你又有了一个新的数组,里面是所有钱多于 100 块的钱包:

    varfatWallets=wallets.filter(

        function(wallet){

            return wallet.money>100;

        }

    );

    call与apply的理解:

    猫吃鱼,狗吃肉,奥特曼打小怪兽。

    有天狗想吃鱼了

    猫.吃鱼.call(狗,鱼)

    狗就吃到鱼了

    猫成精了,想打怪兽

    奥特曼.打小怪兽.call(猫,小怪兽)

    就这样记住了。

    相关文章

      网友评论

          本文标题:forEach、map、reduce、filter、call、a

          本文链接:https://www.haomeiwen.com/subject/jumhbxtx.html