js高階函式

2022-05-06 03:42:14 字數 2015 閱讀 1720

filter用於對陣列進行過濾。 它建立乙個新陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。

注意:filter()不會對空陣列進行檢測、不會改變原始陣列

其中,函式 function 為必須,陣列中的每個元素都會執行這個函式。且如果返回值為 true,則該元素被保留;

函式的第乙個引數 currentvalue 也為必須,代表當前元素的值。

例項: 返回陣列nums中所有大於5的元素

let res = nums.filter((num) =>);

console.log(res);

//[6, 7, 8, 9, 10]

map()方法返回乙個新陣列,陣列中的元素為原始陣列元素呼叫函式處理後的值。

map()方法按照原始陣列元素順序依次處理元素。

注意: map() 不會對空陣列進行檢測。

注意: map() 不會改變原始陣列。

例項:const map1 = array1.map(x => x *2);

console.log(map1);

//[2,8,18,32]

(prev,cur,index,arr), init);

其中, arr 表示原陣列;

prev 表示上一次呼叫**時的返回值,或者初始值 init;

cur 表示當前正在處理的陣列元素;

index 表示當前正在處理的陣列元素的索引,若提供 init 值,則索引為0,否則索引為1;

init 表示初始值。

看上去是不是感覺很複雜?沒關係,只是看起來而已,其實常用的引數只有兩個:prev 和 cur。接下來我們跟著例項來看看具體用法吧~

先提供乙個原始陣列:

實現以下需求的方式有很多,其中就包含使用reduce()的求解方式,也算是實現起來比較簡潔的一種吧。

const sum = arr.reduce((total, num) => total +num);

const arr = [12, 34, 23];

const sum = arr.reduce((total, num) => total + num, 10); //

以10為初始值求和

var result =[

, ,

];const sum = result.reduce((accumulator, cur) => accumulator + cur.score, 0);

const sum = result.reduce((accumulator, cur) => accumulator + cur.score, -10); //

總分扣除10分

由於傳入了初始值0,所以開始時prev的值為0,cur的值為陣列第一項3,相加之後返回值為3作為下一輪**的prev值,然後再繼續與下乙個陣列項相加,以此類推,直至完成所有陣列項的和並返回。

(prev, cur) );

由於未傳入初始值,所以開始時prev的值為陣列第一項3,cur的值為陣列第二項9,取兩值最大值後繼續進入下一輪**。

(prev, cur) ,);

實現的基本原理如下:

初始化乙個空陣列

將需要去重處理的陣列中的第1項在初始化陣列中查詢,如果找不到(空陣列中肯定找不到),就將該項新增到初始化陣列中

將需要去重處理的陣列中的第2項在初始化陣列中查詢,如果找不到,就將該項繼續新增到初始化陣列中

將需要去重處理的陣列中的第n項在初始化陣列中查詢,如果找不到,就將該項繼續新增到初始化陣列中

將這個初始化陣列返回

const res = str.split('').reduce((accumulator, cur) => , {});

參考:reduce() 是陣列的歸併方法,與foreach()、map()、filter()等迭代方法一樣都會對陣列每一項進行遍歷,但是reduce() 可同時將前面陣列項遍歷產生的結果與當前遍歷項進行運算,這一點是其他迭代方法無法企及的

js函式高階

fn fn.call 普通函式呼叫 則函式中this window obj.sayhello 物件呼叫 函式中this 該物件 new student 構造函式呼叫 this 例項物件 btn.onclick fun 通過事件觸發 this指的是繫結事件物件 setinterval function...

js 函式高階

所有例項物件都有乙個特別的屬性 顯式原型與隱式原型的關係 原型鏈object.prototype function.prototype.proto 理解分類 生命週期 包含哪些屬性 函式執行上下文建立和初始化的過程 函式 測試題1 function a var a console.log typeo...

前端 js高階函式

在這裡所謂高階函式,只是對函式方法進行組裝和高階。1 sort 對陣列進行排序 document.write 1,2,5,4 sort 這是最簡單不過的陣列排序語句了。實際上 array.prototype.sort 還能夠支援乙個可選的引數 比較函式 其形式如 sort fn fn是乙個函式型別 ...