js数组遍历十种方法

js数组遍历十种方法1.some()遍历数组,只要有一个以上的元素满足条件就返回true,否则返回false,退出循环对数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false检查整个数组中是否有满足元素。privatesome(id:number){constarr=[{cityId:195,cityName:’深圳’},{cityId:196,cityNa

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1. some()

遍历数组,只要有一个以上的元素满足条件就返回 true,否则返回 false ,退出循环

对数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false

检查整个数组中是否有满足元素。

    private some(id: number) {
      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 198, cityName: '上海'}
      ]
      let result = arr.some((item: any) => {
        return item.cityId === id
      })
      console.log(`传入:${id},结果:${result}`)
    }

js数组遍历十种方法

 

2. every()

遍历数组,每一个元素都满足条件 则返回 true,否则返回 false

    private every() {
      const arr = [1,2,3,4,5]
      let result = arr.every((item: any) => {
        return item > 0
      })
      console.log(`结果:${result}`)
    }

js数组遍历十种方法

    private every() {
      const arr = [1,2,3,4,5]
      let result = arr.every((item: any) => {
        return item > 10
      })
      console.log(`结果:${result}`)
    }

js数组遍历十种方法

3. forEach()

  •  数组里的元素个数有几个,该方法里的回调就会执行几次
  •  第一个参数是数组里的当前元素,第二个参数为数组里当前元素的索引值,第三个参数则是它自己
  •  没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是改变原数组。
  •  不支持 continue,用 return false 或 return true 代替。
  •  不支持 break,用 try catch/every/some 代替
  • 数组自带的遍历方法,虽然使用频率略高,但是性能仍然比普通循环略低
    private forEach() {
      type itemType = {
        cityId: number,
        cityName: string
      }
      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 197, cityName: '上海'}
      ]
      arr.forEach((item: itemType, index: number, arr: any) => {
        console.log(`index:${index},item:${JSON.stringify(item)},arr:${JSON.stringify(arr)}`)
      })
    }

js数组遍历十种方法

 

4. map()

  • map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
  • map() 方法按照原始数组元素顺序依次处理元素。
  • 使用比较广泛,但其性能还不如 forEach
  • 不会改变原始数组。
      let arr = [1, 2, 3, 4, 5, 6]
      let newArr = arr.map((item: any) => {
        return item * item
      })
      console.log(newArr)

js数组遍历十种方法

 

5. filter()

  • 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
  • 不会改变原始数组。
    private filter(id: number): string {
      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 197, cityName: '上海'}
      ]
      let name: string = ''
      arr.filter((item: any) => {
        if(item.cityId === id) {
          name = item.cityName
        }
      })
      console.log(`传入:${id},结果:${name}`)
      return name
    }

js数组遍历十种方法

 

6. find()

遍历数组,返回符合条件的第一个元素,如果没有符合条件的元素则返回 undefined

      let arr = [1,2,2,3,3,3,3,4,4,5,6]
      let num = arr.find((item:any) => {
        return item === 3
      })
      console.log(num)

js数组遍历十种方法

      let arr = [1,2,2,3,3,3,3,4,4,5,6]
      let num = arr.find((item:any) => {
        return item === 10
      })
      console.log(num)

js数组遍历十种方法

 

7. findIndex()

遍历数组,返回符合条件的第一个元素的索引,如果没有符合条件的元素则返回 -1

      let arr = [1,2,2,3,3,3,3,4,4,5,6]
      let num = arr.findIndex((item:any) => {
        return item === 2
      })
      console.log(num)

js数组遍历十种方法

      let arr = [1,2,2,3,3,3,3,4,4,5,6]
      let num = arr.findIndex((item:any) => {
        return item === 10
      })
      console.log(num)

js数组遍历十种方法

 

8. for…of…(ES6)

自动解构

for of不能对象用

      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 197, cityName: '上海'}
      ]
      for(const {cityId, cityName} of arr) {
        console.log(cityId, cityName)
      }

js数组遍历十种方法

 

9. for…in…

for…in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
for in得到对对象的key或数组,字符串的下标

      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 197, cityName: '上海'}
      ]
      const obj = { cityId: 195, cityName: '深圳'}

      for(const key in arr) {
        console.log(`数组key-${key}`)
      }
      for(const key in obj) {
        console.log(`对象key-${key}`)
      }

js数组遍历十种方法

 

10. for

最简单的一种循环遍历方法,也是使用频率最高的一种,可优化

      const arr = [
        { cityId: 195, cityName: '深圳'},
        { cityId: 196, cityName: '北京'},
        { cityId: 197, cityName: '上海'}
      ]
      for(let i = 0; i < arr.length; i++) {
        console.log(arr[i])
      }

js数组遍历十种方法

四种遍历方法对于100万的循环时间

js数组遍历十种方法

for最快,但可读性比较差

forEach比较快,能够控制内容

for….of比较慢,香

for…in比较慢,不方便

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184830.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月7日 下午7:00
下一篇 2022年10月7日 下午7:00


相关推荐

  • string对象下标越界

    string对象下标越界#include<iostream>#include<string>usingnamespacestd;intmain(){stringa;cin>>a[0];cin>>a[1];return0;}最近写代码时发生了这一问题,就是上边的程序,运行后会出现数组越界。其实这是一个非常小的问题,原因是我自己把string当成了一个无穷大的数组,string可以无穷大,但是这并不能将他当成无穷大数组.

    2026年4月14日
    7
  • JAVA+Selenium2—淘宝秒杀购物车脚本

    JAVA+Selenium2—淘宝秒杀购物车脚本JAVA+Selenium—淘宝清空购物车脚本前言准备代码注前言对于自己近期学习的归纳与应用,只是个简单的线性脚本。之前学习了selenium,发现csdn上大都是python+selenium,故参考后改成java+selenium,另外把读取本地时间改成了读取网站时间,更为精确。准备JAVA环境,Selenium-2.46.0jar包,火狐浏览器固定版本(自用的可能是32.0)j…

    2022年5月8日
    127
  • 数据库:索引

    数据库:索引 什么是数据库索引?数据库索引是对数据库表中一列或多列进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。数据库索引就像书的目录,能加快数据库的查询速度。索引分为聚簇索引(聚集索引)和非聚簇

    2022年7月2日
    25
  • oracle universal installer安装_oracle重装

    oracle universal installer安装_oracle重装1、usr/sbin/useradd-m-goinstall-Gdbaoracle什么意思?? 创建了一个新的UNIX/LINUX用户,-m表示如果已经有这个用户不报错,-g是组,-G是其他组,最后是用户名m表示为用户oracle新建一个家目录-g表示为用户指定一个主group-G表示为用户指定一个group这样oracle既属于oinstall组也

    2026年4月14日
    4
  • Java XLSTransformer生成excel文件

    Java XLSTransformer生成excel文件把页面的数据导出excel数据 然后进入struts2action packagecomxx.emidas.activity.activity.ajax;importcom.xx.combiz.spring.util.LionConfigUtils;importcom.xx.e

    2022年7月24日
    25
  • vue取消eslint规范_eslint vue

    vue取消eslint规范_eslint vue新手在学习做vue项目的时候老是遇到一些eslint语法错误的情况,比如下面这种情况:error’xxx’isassignedavaluebutneverusedno-unused-vars其实就是有变量创建了未被引用而已。就这样一个问题就会导致程序无法正常运行,所以很麻烦,现介绍关闭eslint语法校验的方法。在项目目录下找到vue.config.js,如果没有就自己新建一个,在里面添加几个配置项,然后重启项目(npmrunserve)就好了module.exports

    2022年10月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号