1、陣列遍歷foreach()
2、陣列對映map()/**
* 自定義foreach
* @param fn 待執行方法
*/function foreach(fn)
}
3陣列過濾filter()/**
* 自定義map
* @param fn 待執行方法
*/function map(fn)
return list
}
4、陣列是否包含某元素some()/**
* 自定義filter
* @param fn 待執行方法
*/function filter(fn)
} return list
}
5、陣列每一項是否都滿足條件every()/**
* some
* @param fn 待執行方法
*/function some(fn)
} return false
}
6、陣列拼接concat()/**
* every
* @param fn 待執行方法
*/function every(fn)
} return true
}
7、陣列是否包含元素includes()/**
* 自定義concat
* @param array 傳入的陣列列表
*/function concat(...array)
// 遞迴push
const recursion = (arg) =>
} else
} recursion(array)
return that
}
8、查詢滿足條件的第乙個陣列元素find()/**
* * @param value 查詢的元素值
* @param index 查詢開始的索引,可以為負數
* @return
*/function includes(value, index = 0)
} return false
}
9、查詢滿足條件的第乙個陣列元素的索引findindex()/**
* 查詢符合條件的第乙個元素
* @param fn 待執行方法
*/function find(fn)
i++}}
10、搜尋陣列元素indexof()/**
* 查詢符合條件的第乙個元素的索引
* @param fn 待執行方法
*/function findindex(fn)
i++} return -1
}
11、 將陣列元素計算為乙個值(從左到右)reduce()/**
* 搜尋陣列中的元素,返回索引
* @param value 待查詢的元素
*/function indexof(value)
i++} return -1
}
建立完成這些方法,把他們掛載到array上,方便所有陣列物件呼叫/**
* reduce
* 可以用來陣列求和、求陣列最大數、陣列最小數
*/function reduce(fn)
return current
}// 陣列求和示例
arr.$reduce((a, b) => )
// 陣列最大數
arr.$reduce((a, b) => )
// 陣列最小數
arr.$reduce((a, b) => )
const functions =
object.assign(array.prototype, functions) // 把自定義的方法掛載到陣列的原型上,這樣所有陣列都可以呼叫
// 呼叫示例
const arr = [1,2,3]
const newarr = arr.$map(item => )
console.log(newarr) // [2,3,4]
JS陣列方法的原生實現
該方法接受任意個引數,然後新增到陣列的末尾 function push arr,arg push 接受任意個引數,按照順序新增到陣列末尾,返回新的陣列長度 return arr.length 該方法刪除並返回陣列的最後乙個元素,如果陣列為空,返回undefined function pop arr ...
利用原生JS實現陣列原型方法
初始 const istype function type object.prototype.tostring.call t const isarray istype array console.log isarray 簡化後 const istype type t object object.pr...
原生JS實現bind方法
bind方法建立乙個新函式。呼叫新函式時,this指向給定的物件,並且將給定的引數列表作為原函式的引數序列的前若干項。當使用new操作符建立bind函式的例項時,bind函式變成構造器,給定的物件引數失效,其餘引數仍然有效。function mybind function fn 臨時函式protot...