javaScript遍历数组的一些方法

1,for循环

for循环是最基础并且是比较常用的一种

    let arr=[1,2,3,4,5]for(let i=0;i<arr.length;i++){//分别输出1,2,3,4,5console.log('arr'+arr[i])}

2,for...of循环

使用for...of循环可以遍历数组,并且直接获取里面的每个元素

    let arr=[1,2,3,4,5]for(let element of arr){console.log(element)//1,2,3,4,5}

3,for...in

可以遍历对象或数组,遍历数组时key为数组下标

    let arr=[1,2,3,4,5]for(let key in arr){//输出0,1,2,3,4console.log(key)}

4,every()

every,filter,forEach,map,some它们分别接受3个参数:数组项的值,数组中的索引位置和数组对象本身

对数组中的每一项运行给定的函数,如果每一项都返回true,则结果返回true

    let arr=[1,2,3,4,5]let result = arr.every(function (item,index,array) {return (item>3)})console.log(result)//false

如果有一项不符合要求就返回false

5,filter()

对数组中的每一项运行给定的函数,返回该函数会返回true项组成的新数组(它会返回一个新的数组,并不会影响原来的数组.)可以用来过滤某些需要的数据。

    let arr=[1,2,3,4,5]let result = arr.filter(function (item,index,array) {return (item>3)})console.log(result)//[4,5]

6,forEach()

对数组中的每一项运行给定的函数,这个方法没有返回值。无法中途跳出forEach循环,break命令或return命令都不能生效。

    let arr=[1,2,3,4,5]arr.forEach(function (item,index,array) {//分别打出每个元素和索引console.log(item,index)})

7,map()

对数组中的每一项运行给定函数,返回每次函数调用结果组成的新数组,并不会影响原来的数组

    let arr=[1,2,3,4,5]let result=arr.map(function (item,index,array) {return item+1})console.log(arr)//[1,2,3,4,5]console.log(result)//[2,3,4,5,6]

8,some()

对数组中的每一项运行给定的函数,如果该函数的任何一项都返回true(只要找到一个符合条件的就行),则返回true,结果为

    let arr=[1,2,3,4,5]let result=arr.some(function (item,index,array) {return item>3})console.log(result)//truelet arr=[1,2,3,4,5]let result=arr.some(function (item,index,array) {return item>8})console.log(result)//false

9,find()

返回第一个符合条件的元素,没有找到返回undefined

    //第一种let arr=[1,2,3,4,5]let result = arr.find(function (value) {return value===10})console.log(result)//3//第二种let arr=[1,2,'张三',4,5]let result = arr.find(function (value) {return typeof value==='string'})console.log(result)//张三

10,findIndex()

返回第一个符合条件元素的索引,没有找到返回-1

    //第一种let arr=[1,2,'张三',4,5]let result = arr.findIndex(function (value) {return value===2})console.log(result)//1//第二种let arr=[1,2,'张三',4,5]let result = arr.findIndex(function (value) {return value===10})console.log(result)//-1

11,reduce()和reduceRight()

        这两个方法都会迭代数组中的所有项,然后返回一个最终的值。reduce方法从数组的第一项开始,一直遍历到最后。面reduceRight从数组的最后一项开始,一直遍历到最开始的第一项。接受4个参数,前一个值,当前值,数组项的索引和数组本身。

        这个函数返回的任何值都会作为第一个参数自动传给下一项,第一次迭代发生在数组的第二个元素上(第一次就从第二个元素开始)因此第一个参数就是数组的第一项,第二个参数就是数组的第二项。

解释:第一次遍历从2开始,用1和2相加,第二次遍历把第一次的结果和3相加,以此类推,一直到最后一个。reduceRight的用法和reduce相反,从后往前开始。

//reducelet arr=[1,2,3,4,5]let result = arr.reduce(function(prev,cur,index,array){return prev+cur})console.log(result)//15//reduceRightlet arr=[1,2,3,4,5]let result = arr.reduceRight(function(prev,cur,index,array){return prev+cur})console.log(result)//15

对可能用到的做一个总结,做个笔记。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向上调整向下调整算法

目录 AdjustUp向上调整 AdjustDown向下调整 AdjustUp向上调整 前提是&#xff1a;插入数据之后&#xff0c;除去插入的数据其他的数据还是为堆 应用&#xff1a;插入数据。 先插入一个10到数组的尾上&#xff0c;再进行向上调整算法&#xff0c;直到满足堆。 性质&#xff1…

【每日一题】YACS 473:栈的判断

这是上海计算机学会竞赛 P 473 P473 P473&#xff1a;栈的判断&#xff08; 2021 2021 2021年 8 8 8月月赛 丙组 T 4 T4 T4&#xff09;标签&#xff1a;栈题意&#xff1a;给定 n n n个数字&#xff0c;已知这些数字的入栈顺序为 1 , 2 , 3... , n 1,2,3...,n 1,2,3...,n&…

1.30贪心(简单)

目录 1.分发饼干 2. ​​​​​​​种花问题 3. 赢得比赛需要的最少训练时长 1.分发饼干 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让…

基础算法(二)

一 高精度计算 int能表示范围为2^32&#xff0c;这看起来很大&#xff0c;但在大数据时代的如今&#xff0c;不说是int 哪怕是long long也是不够的&#xff0c;那么为了使用或计算这些超出或远超整形大小的数&#xff0c;我们这些数的计算方法称为高精度计算。 &#xff08;1)…

代码随想录 Leetcode113. 路径总和 II

题目&#xff1a; 代码(首刷看解析 2024年1月30日&#xff09;&#xff1a; class Solution { public:vector<int> temp;vector<vector<int>> res;void recursion(TreeNode* cur, int sum) {if (!cur->left && !cur->right && sum 0…

QT 打开项目时显示 “No valid settings file could be found” 错误信息

QT 打开项目时显示“No valid settings file could be found”的错误信息&#xff0c;这通常意味着找不到有效的设置文件。此时&#xff0c;可以尝试以下几种解决方案&#xff1a; 删除项目中的.user文件。这是QT自动生成的用户设置文件&#xff0c;有时候会因为某些原因导致文…

Java进击框架:Spring-WebFlux(九)

Java进击框架&#xff1a;Spring-WebFlux&#xff08;九&#xff09; 前言Mono和FluxSpring WebFlux反应的核心DispatcherHandler带注释的控制器WebFlux配置 WebClient配置retrieve()交换请求正文Filters属性语境同步使用测试 RSocket反应库 前言 Spring框架中包含的原始web框…

Java 异常处理中篇:finally 中的陷阱(finally 中 return 会发生什么)

文章目录 前言版本finally 中的陷阱finally 中使用 returnfinally 中修改数据的影响基本类型引用类型 finally 中的代码 “非最后” 执行finally 代码块一定会执行&#xff1f;异常丢失finally 底层原理分析 总结个人简介 前言 在上一篇文章中&#xff0c;我们介绍了 Java 异常…

Jmeter分布式场景

Jmeter分布式 1. 为什么使用Jmter分布式测试 1.1 需求 对学院接口(查询学院-所有)进行1000用户并发访问&#xff0c;测试服务器处理批量请求能力1.2 现状 我们单台电脑由于配置(CPU、内存)问题&#xff0c;最模拟500用户时&#xff0c;就出现卡死现象按照一般的压力机配置&…

[并发编程基础] Java线程的创建方式

文章目录 线程的创建方式继承 Thread实现 Runnable 接口实现 Callable 接口使用 Lambda使用线程池 线程创建相关的 jdk源码Thread类Runnable函数接口Callable<V>函数接口executors 线程的创建方式 继承 Thread 创建一个继承 Thread 类的子类。重写 Thread 类的 run() 方…

1. 两数之和(力扣LeetCode)

文章目录 1. 两数之和题目描述哈希表&#xff1a;map二分查找暴力&#xff1a;双重for循环 1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可…

Python - 整理 MySQL 慢查询日志

在实际的数据库管理和性能优化工作中&#xff0c;MySQL 慢查询日志&#xff08;slow query log&#xff09;是一个重要的工具。当系统中的 SQL 查询花费的时间超过阈值时&#xff0c;MySQL 会将这些查询记录在慢查询日志中&#xff0c;方便进行性能分析和调优。 本文将介绍如何…

24. 两两交换链表中的节点(力扣LeetCode)

文章目录 24. 两两交换链表中的节点题目描述解题思路只使用一个临时节点使用两个临时节点 24. 两两交换链表中的节点 题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff0…

angular2 开发遇到的问题

1&#xff1a;插件使用&#xff0c;要一同引入 不然报错 “ \ Changes detected. Rebuilding...X [ERROR] NG8001: sf-dashboard-overview is not a known element:”

微信扫码登录流程

微信官方文档使用 搜索“微信开放平台”点击导航栏的“资源中心”点击“网站应用”下的“微信登录功能”地址微信扫码登录是基于OAuth2的&#xff0c;所以需要第三方应用&#xff08;就是实现微信扫码登录的应用&#xff09;成为微信的客户端&#xff0c;获取AppId和AppSecret…

Linux 进程管理

一、简述 当运行一个程序的时候&#xff0c;那么运行的这个程序就叫做进程。程序&#xff0c;是一个静态的概念统称为软件&#xff0c;相当于一个被编译好可执行的二进制文件&#xff0c;同时程序可以长期存在系统中&#xff1b;进程&#xff0c;是一个动态的概念&#xff0c;…

在Python中如何在类中定义属性和方法

目录 1. 类的基本结构 2. 定义属性 3. 定义方法 4. 特殊方法和属性 5. 属性和方法的访问控制 6. 类属性与实例属性 总结 在Python中定义类的属性和方法是面向对象编程的核心概念之一。我将详细介绍如何在Python中定义类的属性和方法。 1. 类的基本结构 在Python中&…

多媒体测试资源

目录 简介自己整理的文件测试资源列表 简介 音视频测试时,需要许多源文件,这里整理了一些.会持续更新.当然可以使用ffmpeg转换获得需要的文件. 如果知道的这方面资源的,在评论区留言. 自己整理的文件 有视频,图片,音频. 链接&#xff1a;https://pan.baidu.com/s/1vatLmWk…

RHCE练习3

1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于www.openlab.com/student 网站访问学生信息&#xff0c;www.openlab.com/data网站访问教学资料www.openlab.com/mo…

Unix环境高级编程-学习-04-匿名管道PIPE

目录 一、环境 二、介绍 三、C标准函数介绍 1、pipe 2、popen 3、pclose 4、注意 四、宏 五、常见的管道用法 1、一对一&#xff08;父进程读子进程写一条管道&#xff09; 2、一对一&#xff08;父进程写子进程读一条管道&#xff09; 3、一对多&#xff08;父进程…