js 数组遍历的几种方式

2023-11-06

js数组,表示的是有序的数据集合,是一种特殊的对象,对象是无序的数据结合。

  1. for循环
  2. for in
  3. for each
  4. for of
  5. es6中数组实例的keys().values()、entries()
  6. map、everyvery等函数

1.for循环
2.for in
3.for each
4.for of
5.es6中数组实例的keys().values()、entries()

1.for 循环

for循环访问的是数组的下标。

const arr = ['a','b','c','d',124]
for (let i=0; i<arr.length;i++) {
  console.log(i,arr[i])  
}
//0 'a'
1 'b'
2 'c'
3 'd'
4 124

2.for in

for循环访问的是数组的下标。

const arr = ['a','b','c','d',124]
for (let i in arr) {
  console.log(i,arr[i])
}
//0 a
  1 b
  2 c
  3 d
  4 124

3.for each

const arr = ['a','b','c','d',124]
arr.forEach( (element,index,array) => {
  console.log(element,index,array)
})
//
a 0 [ 'a', 'b', 'c', 'd', 124 ]
b 1 [ 'a', 'b', 'c', 'd', 124 ]
c 2 [ 'a', 'b', 'c', 'd', 124 ]
d 3 [ 'a', 'b', 'c', 'd', 124 ]
124 4 [ 'a', 'b', 'c', 'd', 124 ]

forEach()参数是一个回调函数,回调函数有三个参数,第一个必须,表示数组的value,第二、三可选,分别表示数组的下标(key)和整个数组。

4.for of

const arr = ['a','b','c','d',124]
for (let i of arr) {
  console.log(i)
}
//
a
b
c
d
124

for of 循环访问的是数组的值(value)。

5.es6中数组实例的keys().values()、entries()

这些都是搭配for …of 使用的

const arr = ['a','b','c','d',124]
for (let i of arr.keys()) {
  console.log(i)
}
//
0
1
2
3
4
const arr = ['a','b','c','d',124]
for (let i of arr.values()) {
  console.log(i)
}
//
a
b
c
d
124
const arr = ['a','b','c','d',124]
for (let i of arr.entries()) {
  console.log(i)
}
//
[ 0, 'a' ]
[ 1, 'b' ]
[ 2, 'c' ]
[ 3, 'd' ]
[ 4, 124 ]

key()、values()、entries(),分别遍历key、value和整个数组。

总结

  1. for、for …in遍历的是数组的下标
  2. for…of 遍历的是数组的值
  3. forEach()下标、值、数组都可以通过传参获取
  4. for…of 搭配es6数组的实例方法可实现forEach()的效果。
  5. for…in常用在对象上,for…of常用在数组上,关于对象的遍历可以看 专栏:
    es6标准入门《07 对象的扩展》
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js 数组遍历的几种方式 的相关文章

随机推荐

  • 2023第十四届蓝桥杯JavaA组真题

  • 关于java数组的扩容问题

    这是一个java数组实例 对一个顺序数组插入一个数 很明显直接插入是不行的 因为java中数组是固定的 不变是不能动态扩容的 想要插入一个数必然要重新创建一个数组 其长度比原数组大 然后对其进行拷贝 接下来要做的工作就是在新数组里面实现插入
  • 一次学校实训总结

    总结 前言 1 Linux基本命令 2 编程开发经验 3 一点MQTT协议的小知识点 4 学习中遇到的一些问题 5 遗忘的知识点与待解决的疑惑 写在后面的话 前言 好久不见 本来说好要更哈工大那一版的操作系统的 现在看来要食言了 正在准备考
  • 监听竖线一直在底部vue2

    要做一个竖线固定在固定区域上 占满固定区域的顶部到底部 固定区域会有滚动条 滚动条滚动的时候竖线要跟随吧变化 首先看看效果 解决办法 body代码 div class liebiao div style height 100 width 1
  • HPC超算初识思维导图

    HPC是高性能计算 High Performance Computing 机群的简称 指能够执行一般个人电脑无法处理的大资料量与高速运算的电脑 其基本组成组件与个人电脑的概念无太大差异 但规格与性能则强大许多 现有的超级计算机运算速度大都可
  • 如何用Redis实现搜索接口

    大家如果是做后端开发的 想必都实现过列表查询的接口 当然有的查询条件很简单 一条 SQL 就搞定了 但有的查询条件极其复杂 再加上库表中设计的各种不合理 导致查询接口特别难写 然后加班什么的就不用说了 不知各位有没有这种感受呢 下面以一个例
  • 华为公司经典设计规范合集

    下载链接 华为公司经典设计规范合集资源 CSDN文库 目录
  • Feature Selective Anchor-Free Module for Single-Shot Object Detection

    参考 Feature Selective Anchor Free Module for Single Shot Object Detection 云 社区 腾讯云 摘要 提出了一种简单有效的单阶段目标检测模块 特征选择无锚定 FSAF 模块
  • 数据库及SQL----常用知识点总结

    数据库也是计算机类笔试面试中不可避免会遇到的考点 尤其是银行和部分传统软件类公司 这里根据整理的资料 对数据库的相关知识也做个总结吧 希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾 没学过的同学能掌握一些数据库的基础知识 第一节
  • osgEarth的Rex引擎原理分析(四十六)如何定制椭球体并进行椭球体间坐标转换

    目标 目标 四十五 中的108 可以用于CGCS2000和WGS84的坐标转换 osg EllipsoidModel默认创建wgs84椭球体 将CGCS2000和WGS84的经纬高坐标分别转换为XYZ 然后比较其差值 osg Coordin
  • 重装mac显示未能恢复服务器取得联系,mac重开电脑后显示重装提示解决办法

    nodejs定义函数的方法 test 163 home exenode part3 module exports more calc js module exports sum function var r hdu 1789 Doing H
  • auto类型推导

    auto的作用 auto是我在编码中经常使用到的C 11新特性之一 主要用于变量的自动类型推导 如auto num 3 则推导出num的类型为int32 t auto的优势 相较于原始的显式类型去声明变量类型 auto的优势有以下几点 au
  • java全局异常捕获处理

    description TODO Author Administrator Date 2021 3 29 Version 1 0 ControllerAdvice public class YjzdyExceptionHandler Exc
  • Windows10电脑文件自动同步备份工具有哪些?

    对于工作中的重要数据人们一般都会有备份的习惯 但是如果都是人工手动复制粘贴 那效率会非常低下 Windows10中电脑文件自动同步备份工作有哪些 工具1 FileYee 推荐值 软件优势 可同百度网盘 移动硬盘实现自动同步备份 功能说明 F
  • 浏览器同源策略

    什么是同源 如果两个 URL 的协议 protocol 端口 port 域名 host 都相同的话 则这两个 URL 是同源的 下表给出了与 URL http store company com dir page html 的源进行对比的示
  • 11.python解答2020年蓝桥杯省赛python组 寻找2020

    11 python解答2020年蓝桥杯省赛python组 寻找2020 问题描述 小蓝有一个数字矩阵 里面只包含数字 0 和 2 小蓝很喜欢 2020 他想找到这个数字矩阵中有多少个 2020 小蓝只关注三种构成 2020 的方式 同一行里
  • 爬虫逆向实战(34)-某视综数据(MD5、AES)

    一 数据接口分析 主页地址 某视综 1 抓包 通过抓包可以发现数据接口是 rank waiting fans 2 判断是否有加密参数 请求参数是否加密 通过查看 载荷 模块可以发现有一个sign参数 请求头是否加密 无 响应是否加密 通过查
  • C语言,实现字符串排序

    实现字符串排序 include
  • leaftlet 点击事件与取消事件

    var layerNear var mapClick function map on click getRange var getRange function e e latlng地图上点击的点 layerNear L marker e l
  • js 数组遍历的几种方式

    js数组 表示的是有序的数据集合 是一种特殊的对象 对象是无序的数据结合 for循环 for in for each for of es6中数组实例的keys values entries map everyvery等函数 1 for循环