1. 程式人生 > >JavaScript基礎——高階函數(map and reduce)

JavaScript基礎——高階函數(map and reduce)

英文名字 test ole ret 函數 fun cti case 英文

 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"]

JavaScript基礎——高階函數(map and reduce)