js数组其他的方法

目录

1、map()

2、find() 

 3、findIndex()

4、 some()

5、every()

6、reverse()

7、reduce()

8、 forEach() 

9、filter( ) 

10、reduceRight()


1、map()

map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。

高阶函数----函数的参数接受一个函数或返回值是函数的函数

	arr.map(function( item,index, arr) {// item -数组每一个元素//index -数组元素的索引// arr-----原数组})

item -数组每一个元素
index -数组元素的索引
 arr-----原数组


    变异方法
              map对原数组循环,每次函数返回值会放入新数组中
              map不影响原数组

map 也称为映射。映射是个术语,指两个元素的集之间元素相互“对应”的关系。

map重点在于有返回值,forEach没有返回值(undefined)

        const arr=[10,20,30,40]const newArray=arr.map(function(item,index,arr){return item*2})console.log(newArray)//[20, 40, 60, 80]

2、find() 

find( ) 查找满足条件的第一个元素,  找到就返回该元素,找不到是undefined
 

 语法:

arr.find ( function ( item, index , arr) {})

 

     const arr=[1,3,7,8,4,2,9,3,6,8]const ele=arr.find(function(item,index,arr){return item===3})console.log(ele)//3

 3、findIndex()

findIndex( )   查找满足条件的第一个元素的索引,找到就返回该元素的索引,找不到是-1
indexOf( ) 只能找具体的值

arr.findIndex ( function ( item, index , arr) {})

 

const arr=[22,34,66,22,6,7,9,0,6]const index=arr.findIndex(function(item,index,arr){return item===6})console.log(index)//4

4、 some()

some对数组进行循环,发现满足条件的第一个元素则循环结束返回true,  假如所有元素不满足返回false

 

//查看数组中是否含有偶数const arr=[2,3,5,7,8,4,99]const flag=arr.some(function(item,index,arr){return item%2===0})console.log(flag)//true

5、every()

every对数组进行循环,所有元素都满足返回true,假如遇到第一个不满足的元素结束,返回false

  const arr=[3,6,8,9,-3,-6,9]const flag = arr.every(function (item) {console.log(item)return item > -9})console.log(flag)//true

6、reverse()

 reverse()   对原数组进行翻转

    const arr=[1,2,3,4,5,6]console.log(arr.reverse())//[6, 5, 4, 3, 2, 1]

7、reduce()

arr.reduce(function(prev , current) { },初始值)


记忆:指定初始值,prev第一次就指向该初始值,以后的prev是上一次函数返回值, current指            向第一个元素
          没有指定初始值,prev第一次就指向数组第一个元素,current指向第二个元素,以后的              prev是上一次函数返回值
 

 // const arr = [1, 2, 3, 4]// const r = arr.reduce(function (prev, current, index, arr) {//   console.log(prev, current, index)//   return prev + current// })// console.log(r)/*第一次 prev指向第一个元素 current 指向第二个 元素 index是current指向的元素的下标第二次 prev代表上一次函数返回值 current继续指向下一个元素 ....最后一次函数的返回值作为reduce最终的结果1 2 1undefined 3 2undefined 4 3*//*prev->1 current->2 return 3prev->3 current->3 return 6prev->6 current->4  return 10*//*arr.reduce(function(prev,current) {},初始值)记忆: 指定初始值,prev第一次就指向该初始值,以后的prev是上一次函数返回值,current指向第一个元素没有指定初始值,prev第一次就指向数组第一个元素,current指向第二个元素,以后的prev是上一次函数返回值*/const arr = [1, 2, 3, 4]const r = arr.reduce(function (prev, current, index, arr) {console.log(prev, current, index)return prev + current}, 0)console.log(r)/*prev->0 current->1  retrurn 1prev->1 current->2 retrurn 3 preve->3 current->3 retrurn 6 preve->6 current->4 return 10*/arr.reduceRight(function (prev, current) {console.log(prev, current)return prev + current})

 

8、 forEach() 

    forEach代替for循环

    arr.forEach(function (item,index, arr) {console.log(item)})


forEach没有返回值   影响原数组

  const arr=[2,4,6,8,9,44,22]let sum=0arr.forEach(function(item){sum+=item})
console.log(sum)//95

9、filter( ) 

filter( ) 过滤  把符合条件的元素组成一个新数组

const arr=[3,44,7,8,79,0,34,55,8,0]
const newArr=arr.filter(function(item){return item>10
})
console.log(newArr)//[44, 79, 34, 55]

10、reduceRight()

reduceRight() 方法对累加器(accumulator)和数组的每个值(按从右到左的顺序)应用一个函数,并使其成为单个值。

const arr=[1,2,3,4,5,6]
const sum=arr.reduce(function(prev,current){return prev+current})
console.log(sum)//21

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

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

相关文章

在 go 的项目中使用验证器

1:使用validate 包验证: 安装包: go get github.com/go-playground/validator/v10 package controllerimport ("fmt""github.com/gin-gonic/gin""github.com/go-playground/validator/v10""net/http&quo…

java中基本数据类型的最大值最小值理解

文章目录 概要主要内容 概要 今天在复习java的Java基础常见面试题时对java中基本数据类型的上下限有了一些思考,接下来我会结合自身的理解进行讲述 主要内容 Java 中有 8 种基本数据类型,分别为:6 种数字类型: 4 种整数型&…

掌握Java核心技术的经典例题解析!

问题:请解释一下基于UDP协议的网络编程是什么? 答案:基于UDP协议的网络编程是一种在网络中使用UDP协议进行数据通信的编程方法。UDP(User Datagram Protocol)是一种简单的传输层协议,与TCP协议相比&#x…

unity android 打包问题解决

gradle编译问题 打开 gradle所在路径,如:C:\Program Files\Unity 2020.3.30f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates, 编辑baseProjectTemplate.gradle,替换成阿里云的源 // GENERATED BY UNITY.…

Java运算符和表达式

在Java编程中,运算符是用于执行各种操作的符号,而表达式是由运算符、操作数和变量组成的代码片段。Java提供了一系列的运算符,用于执行算术、逻辑、赋值和其他各种操作。 一、算术运算符 Java提供了一组算术运算符,用于执行基本…

使用 Filebeat+Easysearch+Console 打造日志管理平台

近年来,日志管理平台越来越流行。使用日志管理平台可以实时地、统一地、方便地管理和查看日志,挖掘日志数据价值,驱动运维、运营,提升服务管理效率。 方案架构 Beats 是轻量级采集器,包括 Filebeat、Metricbeat 等。E…

基于vue的three.js学习

vue安装three.js,并创建第一个入门场景 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景,camera相机,renderer渲染器 创建一个场景 this.scene new T…

这7款神仙软件,程序员必备!

如果你是程序员、开发者、网络运维等 IT 从业者日常工作中大家肯定会用到很多网站,今天给大家带来7款压箱底的神仙软件,希望可以帮助有需要的码农朋友实现更高效地办公。 一、Everything 适用:本地文件搜索神器 就是为了极速检索而生,其实…

yapi==使用依赖包里的类作为入参/返回值导出后没有备注

比如模块A中有个MyDemoEntity类&#xff0c;在B中以依赖的形式引入了A&#xff0c;并在B的接口中以MyDemoEntity作为返回值&#xff0c;导出到YAPI发现MyDemoEntity的备注没了。 解决&#xff1a; 将A的内容安装到本地MAVEN仓库&#xff0c;并且需要将源码也一起安装 <buil…

探索锦食送如何通过API集成无代码开发技术提高电商平台和营销系统效率

探索锦食送无代码开发集成技术 随着电子商务和营销系统的快速发展&#xff0c;企业不断寻求更高效和灵活的管理方式。锦食送&#xff0c;作为高端餐饮外卖服务的领先者&#xff0c;通过无代码开发的API集成技术&#xff0c;实现了电商平台和营销系统的高效管理。这种创新的连接…

# 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅

Prolog 的语法很奇怪,需要一些时间来适应,所以我花了点时间,想用Prolot来学习和验证离散逻辑的16组等价公式。 1. 双重否定律 (Double Negation Law) A ⇔A 首先&#xff0c;我们来看看双重否定律。在 Prolog 中&#xff0c;我们可以这样验证它&#xff1a; fun1(A,Z):-memb…

干货分享:本地生活服务商入驻申请需要哪些条件?附更快捷的方法!

在数字化时代&#xff0c;本地服务市场已经成为各大平台争夺的重要阵地。抖音不仅在短视频市场占有一席之地&#xff0c;同时也在如火如荼的开发着本地服务市场&#xff0c;相继支付宝、视频号也推出了本地生活服务商模式。本文将介绍抖音本地生活服务商的申请条件&#xff0c;…

dedecms标签

【Arclist 标记】这个标记是DedeCms最常用的一个标记&#xff0c;也叫自由列表标记&#xff0c;其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。功能说明&#xff1a;获取指定的…

WIN10 WIN11 12代 13代 大小核;性能核;电源选项;P-core,E-core;

WIN10 WIN11 12代 13代 大小核&#xff1b;性能核&#xff1b;电源选项&#xff1b;P-core,E-core&#xff1b; WIN10 WIN11 12代 13代 大小核;性能核&#xff1b;电源选项&#xff1b;P-core,E-core;说明&#xff1a;方法&#xff1a;1。右键开始菜单&#xff0c;选择“Window…

时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现ELM-Adaboost时间序列预测&#xff0c;极…

Django 集成 Celery 实现高效的异步任务处理

概要 在复杂的 Web 应用中&#xff0c;处理长时间运行的任务或定期任务是一项挑战。Django 作为一个强大的 Python Web 框架&#xff0c;可以通过集成 Celery 这一异步任务队列来优化这些任务的处理。Celery 不仅能提高应用性能&#xff0c;还能改善用户体验。本文将深入探讨如…

LeetCode——移除元素

问题描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

理解系统内核linux phy驱动

PHY设备驱动是基于device、driver、bus的连接方式,驱动涉及如下几个重要部分&#xff1a; 总线 - sturct mii_bus (mii stand for media independent interface) 设备 - struct phy_device 驱动 - struct phy_driver。PHY驱动函数驱动功能&#xff1a; 函数名称 功能描述 s…

arcgis中投影文件(.prj)和地理转换文件(.gtf)存储路径

1、投影文件&#xff08;自定义的.prj&#xff09;的存储路径 C:\Users\14635\AppData\Roaming\ESRI\Desktop10.5\ArcMap\Coordinate Systems 2、地理转换文件&#xff08;.gtf&#xff09;--自定义 C:\Users\14635\AppData\Roaming\ESRI\Desktop10.5\ArcToolbox\CustomTransfo…