javaScript API

2020/01/02 JavaScript 共 1105 字,约 4 分钟

可互替的 API

如果遇到兼容性的问题,我们可以尝试用多个 api 改写,最后写出我们要的结果

举个例子

场景:在一次开发的过程中遇到了 includes 方法不兼容,后来用 indexOf 替换 //判断一个字符串是否包含另一个字符串 console.log(content.includes(‘b’)); console.log(content.indexOf(‘b’)!=-1);

简化版 flat 方法

function flat(list){
  return list.reduce((acc,val)=>
    Array.isArray(val)?acc.concat(flat(val)):acc.concat(val)
  ,[])
}

简化版 filter 方法

Array.prototype.filter = function(fn){
    let newArr = []
    console.log(this)
    for(let i = 0 ; i<this.length;i++){
        let flag = fn(this[i])
        flag&&newArr.push(this[i])
    }
    return newArr
}

简化版 every 方法

//要求每一个元素都要符合条件,只要有一个不符合就退出
Array.prototype.every = function(fn){
    let flag = true
    for(let i = 0 ; i<this.length;i++){
         flag = fn(this[i])
        if(!flag){
          return false
        }
    }
    return flag
}

简化版 some 方法

//要求只要有一个元素都要符合条件
Array.prototype.some = function(fn){
    for(let i = 0 ; i<this.length;i++){
        let flag = fn(this[i])
        if(flag){
          return flag
        }
    }
    return false
}

简化版 find 方法

//要求只要有一个元素都要符合条件,就返回这个元素
Array.prototype.find = function(fn){
    for(let i = 0 ; i<this.length;i++){
        let flag = fn(this[i])
        if(flag){
          return this[i]
        }
    }
}

简化版 findIndex 方法

//要求只要有一个元素都要符合条件,就返回这个元素
Array.prototype.findIndex = function(fn){
    for(let i = 0 ; i<this.length;i++){
        let flag = fn(this[i])
        if(flag){
          return i
        }
    }
}

Array.prototype.find()


在技术的历史长河中,虽然我们素未谋面,却已相识已久,很微妙也很知足。互联网让世界变得更小,你我之间更近。

在逝去的青葱岁月中,虽然我们未曾相遇,却共同经历着一样的情愫。谁的青春不曾迷茫或焦虑亦是无奈,谁不曾年少过

在未来的日子里,让我们共享好的文章,共同学习进步。有不错的文章记得分享给我,我不会写好的文章,所以我只能做一个搬运工

我叫 sunseekers(张敏) ,千千万万个张敏与你同在,18年电子商务专业毕业,毕业后在前端搬砖

如果喜欢我的话,恰巧我也喜欢你的话,让我们手拉手,肩并肩共同前行,相互学习,互相鼓励

文档信息

Search

    Table of Contents