Array的Reduce實現原理

2022-08-04 08:27:13 字數 589 閱讀 6429

function myreduce (fn,basenumber) 

// 判斷傳入的是不是個函式

if(typeof fn !== 'function') throw new error(`$ is not a function`)

// 判斷陣列是否為空

if(!this.length) throw new error(`reduce of empty array with no initial value`)

// 判斷傳回的基數,是否有值,沒有值的話拿陣列的第乙個值為基數

basenumber = (basenumber || 0) + this[0]

let index = 0

//迴圈執行遍歷執行fn函式

while(index < this.length)

return basenumber

}array.prototype.myreduce = myreduce

a = [1,2,3,4,5,6]

const x=

a.myreduce(function(a,b),20)

console.log(x)

陣列(Array)的常用方法(reduce)

reduce 陣列通過此方法,可以實現將每一項疊加稱為一項。使用 sum arr.reduce fun,start 其中,fun為乙個方法,接收四個引數,分別為 cur 當前項的值 index 當前項的index arr 原陣列 其中,start為疊加計算定義型別,並且為初始值,此值可以根據實際情況...

瀏覽器Array改變原陣列方法原理及實現

1.push 往陣列末尾新增元素,可一次新增多個 array.prototype.push function return this length 2.pop 移除陣列中的最後乙個元素,引數沒有效果 array.prototype.pop function 3.shift 移除陣列最開始的元素,只能...

reduce實現filter,map 陣列扁平化等

map函式接收乙個函式作為引數,作為引數的函式接收三個引數值,分別是遍歷陣列的每一項元素,元素的索引和陣列本身。這三個引數剛好和reduce函式接收的第乙個函式引數的第2 3 4個引數是對應的。這是實現的核心 實現思路是,將每次遍歷的元素,作為傳入的函式的引數,並將函式執行的結果放入新的陣列中。ar...