Elasticsearch 之全文檢索與倒排索引
阿新 • • 發佈:2020-12-24
//定義柯里化函式 function curry(fn) { //定義一個空陣列 var arr = []; //閉包,返回一個匿名函式 return function () { //如果引數的長度等於0時(就是不填引數,如下面的fns()) if (arguments.length === 0) { //返回fn的執行結果到列印fns()中----下面return的結果帶到這裡 return fn.apply(null, arr); } //如果引數的長隊不等於0時,將引數以陣列的形式新增到空陣列中 arr = Array.prototype.concat.apply(arr, arguments); // var arr1=Array.prototype.slice.call(arguments);//ES5中寫法 // var arr1=Array.from(arguments);//Es6中才有的寫法 // arr=arr.concat(arr1);與上面註釋的第一條合起來與上面的arr=Array....作用相同 } } //定義求和的函式 function getSum() { //返回 將引數帶入陣列中並且歸併 return Array.prototype.reduce.call(arguments, function (sum, item) { return sum + item; }); // var arr=Array.from(arguments); // var sum=arr.reduce(function(sum,item){ // return sum+item; // }); // return sum; 註釋部分等同於上面的return Array..... } //定義fns 是 curry中帶入getsum var fns = curry(getSum); fns(1); fns(10); fns(12); fns(15, 16); fns(15, 16, 18); //列印 fns();的執行結果 console.log(fns());//103