JS - 用 for 循环实现常见的数组迭代方法

凯特林
• 阅读 1400

常见的数组迭代方法有很多种,比如 some, filter, map等等,底层也都可以用for来实现,我们来康一康。

some

    const some = (arr, fn) => {
      for (let i = 0; i < arr.length; i++) {
        if (fn(arr[i], i, arr)) {
          return true
        }
      }
      return false
    }

every

    const every = (arr, fn) => {
      let count = 0
      const len = arr.length
      for (let i = 0; i < len; i++) {
        if (fn(arr[i], i, arr)) {
          count++
        }
      }
      return count === len
    }

filter

    const filter = (arr, fn) => {
      const res = []
      for (let i = 0; i < arr.length; i++) {
        if (fn(arr[i], i, arr)) {
          res.push(arr[i])
        }
      }
      return res
    }

find

    const find = (arr, fn) => {
      for (let i = 0; i < arr.length; i++) {
        if (fn(arr[i], i, arr)) {
          return arr[i]
        }
      }
    }

map

    const map = (arr, fn) => {
      const res = []
      for (let i = 0; i < arr.length; i++) {
        res.push(fn(arr[i]))
      }
      return res
    }

持续更新中...

点赞
收藏
评论区
推荐文章
凝雪探世界 凝雪探世界
3年前
超详细的 JS 数组方法
数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响。一、创建数组1.使用数组字面量表示法var arr4  ;   //创建一个空数组var arr5  20;   // 创建一个包含1项数据为20的数组var arr
半臻 半臻
2年前
Python基础9——可迭代对象
17可迭代对象list是一个迭代对象可以通过for..in..这类语句遍历读取数的对象称之为可迭代对象pythonli1,2,3foriinli:print(i)17.1什么是可迭代对象可迭代对象1.字符串2.列表3.元组4.字典5.集合满意以下条件的也可以成为可迭代对象1.对象实现了\iter方法
Symbol卢 Symbol卢
2年前
js数组的遍历
js中数组的遍历1\.Map()方法Map映射的意思,可以看做是一个映射函数,所谓的映射。一个萝卜一个坑,一一对应的关系;语法:constarrArray();arr.map((item,index,arr)//函数体return;);//参数1:数组中的每一项(必选)//参数2:索引(可选)//参数3:当前遍历的数组本身(可选)//注
西八老码 西八老码
2年前
今天就来花一点时间整理一下算法吧!
算法,就是计算机处理信息的一个步骤。是独立存在的一种处理问题的方法和思想,并不局限于具体的实现过程。排序冒泡cpublicstaticintBubbleSort(intarr)for(inti0;i<arr.length;i)for(intj0;j<a
Jacquelyn38 Jacquelyn38
2年前
这些JS工具函数够你用到2020年底了
前言活不多说,自己平时搜集的干货函数奉上。干货函数找出数字在数组中下一个相邻的元素let i  "";let rr  ;const name  (n, arr1)    let num  Number(n);    for (let i  0; i < arr1.length; i)         const elemen
Wesley13 Wesley13
2年前
java 基础知识
遍历遍历就是把这个数组的每个元素显示出来遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如doublescorenewdouble5;ScannerinputnewScanner(System.in);for(inti0;i<score.l
Wesley13 Wesley13
2年前
Java开发者容易犯的十个错误
!(https://oscimg.oschina.net/oscnet/c9f00cc918684fbe8a865119d104090b.gif)Top1.数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:\java\List<StringlistArrays.asList(arr);Arr
Wesley13 Wesley13
2年前
Java日期时间API系列30
  实际使用中,经常需要使用不同精确度的Date,比如保留到天2020042300:00:00,保留到小时,保留到分钟,保留到秒等,常见的方法是通过格式化到指定精确度(比如:yyyyMMdd),然后再解析为Date。Java8中可以用更多的方法来实现这个需求,下面使用三种方法:使用Format方法、 使用Of方法和使用With方法,性能对比,使用
九路 九路
1年前
go并发模式
一、生成器gofuncmessageGen(namestring)<chanstringc:make(chanstring)i:0gofunc()fortime.Sleep(10001000)c<name""strconv.Itoa(i)i()returncgo//方法一:此种方法,可以不必知道具体有多少个chan,参数里面也可以传一个chan的数组,如下面的fanInSlicefuncfanIn(c1,c2
LinMeng LinMeng
5个月前
v-for 循环数组可以是一个函数
htmljsshowMyopenGroupList(totalNum,num)letdefaultNumtotalNumnumletarrfor(leti0;i<defaultNum;i)arr.push(i)returnarr,