zoukankan      html  css  js  c++  java
  • JS_高阶函数(map and reduce)

     1     //高阶函数:一个函数可以接受另一个函数作为参数,这种函数称之为高阶函数。
     2         /*1*/
     3         function f(x,y,f){
     4             return f(x)+f(y);
     5         }
     6         var sumAbs=f(-6,4,Math.abs);
     7         console.log(sumAbs);//10
     8 
     9 
    10 
    11         //map和reduce
    12         /*map*/
    13         /*2*/
    14         function pow(x){
    15             return x*x;
    16         }
    17         var arr=[1,2,3,4,5];
    18         var x2=arr.map(pow);
    19         var toS=arr.map(String);
    20         console.log(x2);//[1, 4, 9, 16, 25]
    21         console.log(toS);//["1", "2", "3", "4", "5"]
    22 
    23 
    24         /*reduce*/
    25         /*3*/
    26         var arr=[1,3,5,7,9];
    27         function sum(x,y){
    28             return x+y;
    29         }
    30         function pro(x,y){
    31             return x*y;
    32         }
    33         function intt(x,y){
    34             return x*10+y;
    35         }
    36         var s=arr.reduce(sum);
    37         var p=arr.reduce(pro);
    38         var i=arr.reduce(intt);
    39         console.log(s);//25
    40         console.log(p);//945
    41         console.log(i);//13579
    42 
    43         /*or*/
    44         console.log(arr.reduce(function(x,y){
    45             return x+y;
    46         }));//25
    47             console.log(arr.reduce(function(x,y){
    48             return x*y;
    49         }));//945
    50             console.log(arr.reduce(function(x,y){
    51             return x*10+y;
    52         }));//13579
    53 
    54 
    55         /*string to int*/
    56         /*4*/
    57         var str="5678";
    58         var arr=str.split('');
    59         console.log(arr);//["5", "6", "7", "8"]
    60         arr=arr.map(function(x){
    61             return x-0;
    62         })
    63         console.log(arr);//[5, 6, 7, 8]
    64         console.log(arr.reduce(function(x,y){
    65             return x*10+y;//5678
    66         }))
    67 
    68         /*or*/
    69         console.log(str.split('').map(function(x){
    70             return x-0;
    71         }).reduce(function(x,y){
    72             return x*10+y;
    73         }));//5678
    74 
    75         
    76         /*请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。*/
    77 
    78         /*test*/
    79         var str="abs";
    80         console.log(str[0]);//a
    81         /*5*/
    82         var arr=['adam', 'LISA', 'barT'];
    83         console.log(arr.map(function(x){
    84             return x[0].toUpperCase()+x.substring(1).toLowerCase()
    85         }));// ["Adam", "Lisa", "Bart"]
  • 相关阅读:
    完全N叉树寻找祖先
    MySql_Front新建数据库遇到访问地址冲突问题
    C++金额的中文大写
    STL_sort cmp
    螺旋数组
    ~
    Struts向JSP中传值
    Struts1-配置文件部分
    jQuery Ajax 的 load()方式
    jquery animate
  • 原文地址:https://www.cnblogs.com/LinSL/p/7183515.html
Copyright © 2011-2022 走看看