手写数组的迭代方法 (foreach,map,filter,some,every,find,findIndex)

关于数组常见的面试题有很多,手撕的数组方法,就是其中的一种题目。以下是我整理了七个数组方法。代码看起来通俗易懂,相信你看完了一个,就能将其它6个写出来了。

1.foreach: foreach本质上就是对数组进行迭代遍历,参数为callback callback中的参数为数组中的每一项,下标,以及数组本身,只要对foreach 的原理了解到位,手撕不是问题。
//1.foreach  @params callback(item,index,arr)作用:迭代数组,遍历数组。
Array.prototype.w_foreach=function(callback){
       for(let i=0;i
2.map: map本质上就是对数组进行迭代遍历,对数组中的每一项进行操作,返回一个新的数组。参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//2.map   @params callback(item,index,arr)作用:遍历数组中的每一项,对数组中的每一项进行操作,返回一个新的数组。
Array.prototype.w_map=function(callback){
    let newArr=[];
    for(let i=0;i
3.filter: filter本质上就是对数组进行迭代遍历,将符合条件的过滤出来。并且每一次过滤都会返回一个布尔值. 参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//3.filter  @params callback(item,index,arr)作用:遍历数组中的每一项,将符合条件的过滤出来。并且每一次过滤都会返回一个布尔值  .
Array.prototype.w_filter = function (callback) {
    let newArr = [];
    for (let i = 0; i < this.length; i++) {
         callback(this[i], i, this) && newArr.push(this[i])
    }
    return newArr
 }
4.every: every本质上就是对数组进行迭代遍历, 如果都是真的就返回true,有一个假的就返回false 相当于逻辑运算符 &&. 参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//4.every  @params callback(item,index,arr)作用:遍历数组中的每一项,如果都是真的就返回true,有一个假的就返回false  相当于逻辑运算符 &  
Array.prototype.w_every=function(callback){
   for(let i=0;i
5.some: some本质上就是对数组进行迭代遍历, 如果都是假的就返回false,有一个真的就返回true 相当于逻辑运算符||. 参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//5.some  @params callback(item,index,arr)作用:遍历数组中的每一项,如果都是假的返回false,一个为真就是true  相当于逻辑运算符 ||  
Array.prototype.w_some=function(callback){
   for(let i=0;i
6.find: find本质上就是对数组进行迭代遍历,将符合条件的以一个新的数组返回,没有符合条件的返回undefined 参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//6. find  @params callback(item,index,arr)作用:遍历数组中的每一项,将符合条件的那一项返回。没有符合条件的返回undefined
Array.prototype.w_find=function(callback){
   let newArr=[]
   for(let i=0;i
7.findIndex: findIndex本质上就是对数组进行迭代遍历,返回符合条件的下标,没有符合条件的返回-1 参数为callback callback中的参数为数组中的每一项,下标,以及数组本身。
//7. findIndex  @params callback(item,index,arr)作用:遍历数组中的每一项,将符合条件的那一项返回。没有符合条件的返回-1
Array.prototype.w_findIndex=function(callback){
   for(let i=0;i

到底啦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

欢迎各位大佬指点~~~~~~~~

你可能感兴趣的:(数组的方法,javascript)