当前位置: 首页 > news >正文

js之数组遍历

js之数组遍历

      • 1、for
      • 2、forEach
      • 3、map
      • 4、filter
      • 5、every
      • 6、some
      • 7、reduce

1、for

可以用来遍历数组、字符串、类数组、DOM节点,可以更改原数组,可以使用break、continue 跳出循环
return 只能在函数内部使用

for(声明循环变量;判断循环条件;更新循环变量){
  循环体
}

2、forEach

参数(当前元素,元素下标,原数组)
使用如return只会跳出当前循环,相当于continue, 循环中不能使用break,continue关键字
使用try…catch 跳出循环
无法更改原数组,只能遍历数组,无法遍历对象,对空数组不进行检验

var arr = [10, 11, 12, 13]
        try {
            arr.forEach((ls, a, b) => {
                if (ls == 11) {
                    throw new Error('ww')
                }
                console.log(ls)
            })
        } catch (e) {
            if (e.message !== "ww") throw e
        }

3、map

参数同forEach
无法更改原数组,可以使用return跳出循环或返回新数组
无法更改原数组,只能遍历数组,无法遍历对象,对空数组不进行检验

4、filter

filter()方法会创建一个新的数组,新数组中元素是通过检查指定数组中符合条件的所有元素。

array.filter(function(currentValue,index,arr),thisValue);

返回值为数组,没有符合条件则返回空数组
不会对空数组进行检测,不会改变原始数组

5、every

every()方法用于检测数组中的所有元素是否都满足指定,如果有一项不满足条件,则表达式返回false,剩余的项将不会再次执行检测,如果每一项都符合则返回true

array.every(function(currentValue,index,arr){},thisValue)

不会对空数组进行检测,不会改变原始数组

6、some

some()方法用于检测数组中的元素是否满足指定条件,如果有一个元素满足条件,则表达式返回true,剩余的元素则不会执行,如果没有满足条件的元素,则返回false

some.every(function(currentValue,index,arr){},thisValue)

不会对空数组进行检测,不会改变原始数组

7、reduce

reduce()方法对数组中的每一个元素执行一个由你提供的函数,依次执行,将其结果汇总为单个返回值。

array.reduce((prev,cur,index,arr)=>{},initialValue)

参数说明:callback 函数(执行数组中每个值的函数,包含四个参数)
1、prev 必需(上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、cur 必需(数组中当前被处理的元素)
3、index 可选 (当前元素在数组中的索引)
4、arr 可选 (调用 reduce 的数组) initialValue 可选 (表示初始值,作为第一次调用 callback 的第一个参数。) 提供初始值,cur 从数组第一项开始,若不提供初始值,则 cur 从第二项开始执行,对应的第一次 prev是数组第一项的值

相关文章:

  • 性能优化——canvas 加载海量图
  • Open CASCADE学习|视图
  • Python零基础安装教程(包含各种安装方案)以及PyCharm安装步骤
  • 第七章 正则表达式
  • 机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器
  • C++多态
  • 理想滤波器、巴特沃斯滤波器、高斯滤波器实现(包含低通与高通,代码实现与分析)
  • opengl播放3d pose 原地舞蹈脚来回飘动
  • C++拿几道题练练手吧
  • java面试题之mybatis篇
  • 浅谈 TCP 三次握手
  • 【牛客】SQL123 SQL类别高难度试卷得分的截断平均值
  • 支持国密ssl的curl编译和测试验证(下)
  • 什么是高可用架构
  • 代码随想录|学习工具分享
  • Spring Boot自动装配原理
  • 【LeetCode】【滑动窗口长度不固定】978 最长湍流子数组
  • 合并spark structured streaming处理流式数据产生的小文件
  • 多模态表征—CLIP及中文版Chinese-CLIP:理论讲解、代码微调与论文阅读
  • 使用React和ResizeObserver实现自适应ECharts图表
  • 文旅部:推动离境退税购物便利化有利于更多国内优质商品走出去
  • 旧衣服旧纸箱不舍得扔?可能是因为“囤物障碍”
  • “今日海上”对话“今日维也纳”,东西方艺术在上海碰撞
  • 广东省发展改革委原副主任、省能源局原局长吴道闻被开除公职
  • “80后”阿伯丁大学法学硕士朱江已任四川泸州市副市长
  • 基辅响起密集爆炸声,乌方称俄军发动大规模导弹袭击