资讯专栏INFORMATION COLUMN

一些函数的简单实现

stormjun / 2487人阅读

摘要:最近在牛客网刷了一些题,接下来给大家奉上我的一些函数的简单实现,希望可以对大家有所帮助。也当作给自己做一个简单的笔记。

最近在牛客网刷了一些题,接下来给大家奉上我的一些函数的简单实现,希望可以对大家有所帮助。也当作给自己做一个简单的笔记。

查找元素在数组中的位置
const indexOf = (arr, item)  => arr.indexOf(item);
数组求和
const sum = arr =>  arr.reduce((prev,next) => prev + next, 0)
移除数组内的指定项
const remove = (arr, item) => {

    var newArr = arr.filter(t => t !== item})

    return newArr
}

    //第一种实现,借用filter方法过滤掉指定项

const remove = (arr, item) => {
  let newArr = [];
  arr.forEach( t => {
    if(t!==item){
    newArr.push(t)
    }
  })
  return newArr;
}//正常的数组遍历方法,还有很多实现方法这里就不赘述了,大家自行发散思维
统计某一项出现的次数
const count = (arr, item) => arr.reduce((prev, cur)=> cur === item ? prev + 1 : prev, 0)
//这个算是运用了一下reduce用来统计也是棒棒哒
找出数组中重复的项
 const duplicates = arr => {  
      let duplicatesArr = [];
        arr.forEach(t => {  
          if (arr.indexOf(t) !== arr.lastIndexOf(t) && duplicatesArr.indexOf(t) === -1) {    
            duplicatesArr.push(t);  
          } 
       }) 
      return duplicatesArr;
    }
    //思路为如果正向查找和反向查找index不同,这个项就重复过。
找出某项在数组中出现的所有位置
const findAllOccurrences = (arr, target) => {  
  let ret = [];
    arr.forEach((t, i) =>{  
      if (t === target) {   
        ret.push(i)   
      } 
 })  
  return ret;
}
数组的去重
const unique = arr => [... new Set(arr)]
//这是我的第一种实现方式 利用es6的Set的特性 来达到去重的目的
const unique = arr => arr.filter((t,i)=>i === arr.indexOf(t))
//这是第二种

欢迎大家发散思维共同讨论,如有错误请指正。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107171.html

相关文章

  • 用vue框架基本原理,简单实现一个todo-list

    摘要:前言最近在学习框架的基本原理,看了一些技术博客以及一些对源码的简单实现,对数据代理数据劫持模板解析变异数组方法双向绑定有了更深的理解。 前言 最近在学习vue框架的基本原理,看了一些技术博客以及一些对vue源码的简单实现,对数据代理、数据劫持、模板解析、变异数组方法、双向绑定有了更深的理解。于是乎,尝试着去实践自己学到的知识,用vue的一些基本原理实现一个简单的todo-list,完成...

    Karrdy 评论0 收藏0
  • ES6 Generator实现协同程序

    摘要:关键字表示代码在该处将会被阻塞式暂停阻塞的仅仅是函数代码本身,而不是整个程序,但是这并没有引起函数内部自顶向下代码的丝毫改变。通过实现模式在通过实现理论的过程中已经有一些有趣的探索了。 至此本系列的四篇文章翻译完结,查看完整系列请移步blogs 由于个人能力知识有限,翻译过程中难免有纰漏和错误,望不吝指正issue ES6 Generators: 完整系列 The Basics...

    MudOnTire 评论0 收藏0
  • 什么是 JAVASCRIPT?

    摘要:,微软发布,同时发布了,该语言模仿同年发布的。,公司在浏览器对抗中没落,将提交给国际标准化组织,希望能够成为国际标准,以此抵抗微软。同时将标准的设想定名为和两类。,尤雨溪发布项目。,正式发布,并且更名为。,发布,模块系统得到广泛的使用。 前言 作为程序员,技术的落实与巩固是必要的,因此想到写个系列,名为 why what or how 每篇文章试图解释清楚一个问题。 这次的 why w...

    ephererid 评论0 收藏0
  • [译]Mixin 函数

    摘要:函数通常是面向对象编程风格,具有副作用。因为在函数式编程中,很有可能这些引用指向的并不是同一个对象。记住,函数并不意味着函数式编程。函数可以用函数式编程风格编写,避免副作用并不修改参数,但这并不保证。 软件构建系列 原文链接:Functional Mixins 译者注:在编程中,mixin 类似于一个固有名词,可以理解为混合或混入,通常不进行直译,本文也是同样。 这是软件构建系列教...

    zxhaaa 评论0 收藏0
  • 基于游标分页接口实现

    摘要:游标条数的分页接口实现命令用于迭代数据库中所有的,但是因为数据中的数量是不能确定的,线上直接执行会被打死的,而且的数量在你操作的过程中也是时刻在变化的,可能有的被删除,可能期间又有新增的。 分页接口的实现,在偏业务的服务端开发中应该很常见,PC时代的各种表格,移动时代的各种feed流、timeline。 出于对流量的控制,或者用户的体验,大批量的数据都不会直接返回给客户端,而是通过...

    godruoyi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<