實(shí)現(xiàn)高階函數(shù)的方法

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>手寫數(shù)組高階函數(shù)</title>

</head>

<body>

? ? <script>

? ? ? ? let arr = [3,5,2,7,8]

? ? ? ? // 1.手寫forEach()方法

? ? ? ? function forEach(arr,callback){

? ? ? ? ? ? for(let i=0;i<arr.length;i++){

? ? ? ? ? ? ? ? callback(arr[i],i)

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? forEach(arr,(item,index)=>{

? ? ? ? ? ? console.log(index+'---'+item);

? ? ? ? })

? ? ? ? console.log('----------------------------');

? ? ? ? // 2.手寫every()方法

? ? ? ? function every(arr,callback){

? ? ? ? ? ? for(let i=0;i<arr.length;i++){

? ? ? ? ? ? ? ? if(!callback(arr[i])){

? ? ? ? ? ? ? ? ? ? return false

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return true

? ? ? ? }

? ? ? ? console.log(every(arr,num=>num>10));

? ? ? ? console.log(every(arr,num=>num%3===0));

? ? ? ? console.log('----------------------------');


? ? ? ? // 3.手寫reduce()方法

? ? ? ? function reduce(arr,callback,initNum){

? ? ? ? ? ? for(let i=0;i<arr.length;i++){

? ? ? ? ? ? ? ? let r = callback(initNum,arr[i])

? ? ? ? ? ? ? ? initNum = r ?//每次返回的結(jié)果,需要替換initNum

? ? ? ? ? ? }

? ? ? ? ? ? return initNum

? ? ? ? }

? ? ? ? console.log(reduce(arr,(a,b)=>a+b,0));

? ? </script>

</body>

</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容