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

JavaScript 数组迭代

数组迭代方法对每个数组项进行操作。

Array.forEach()

forEach() 方法为每个数组元素调用一次函数(回调函数)。

<!DOCTYPE html>
<html><body><p id="demo"></p><script>var txt = "";var numbers = [45, 4, 9, 16, 25];numbers.forEach(myFunction);document.getElementById("demo").innerHTML = txt;function myFunction(value, index, array) {txt = txt + value + "<br>";}</script></body></html>//第二种
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p><script>
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;function myFunction(value) {txt = txt + value + "<br>"; 
}
</script></body>
</html>

该函数接受 3 个参数:项目值 项目索引 数组本身

Array.map()

map() 方法通过对每个数组元素执行函数来创建新数组。

map() 方法不会对没有值的数组元素执行函数。

map() 方法不会更改原始数组。

<!DOCTYPE html>
<html lang="en">
<body><p id="demo"></p><script>var numbers=[12,53,86,99,77,88,66];var sum=numbers.reduce(myFunction);document.getElementById("demo").innerHTML="12+53+86+99+77+88+66的总和"+sum;function myFunction(total,value,index,array){return total +value;}</script>
</body>
</html>

请注意此函数接受 4 个参数:总数(初始值/先前返回的值) 项目值 项目索引 数组本身

reduce() 方法能够接受一个初始值

<!DOCTYPE html>
<html lang="en"><body><p id="demo1"></p><script>var numbers = [12, 53, 86, 99, 77, 88, 66];var sum = numbers.reduce(myFunction, 100);document.getElementById("demo1").innerHTML = "12+53+86+99+77+88+66的总和:" + sum;function myFunction(total, value) {return total + value;}</script></body></html>

Array.reduceRight()

reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduceRight() 方法在数组中从右到左工作。另请参阅 reduce()。

reduceRight() 方法不会减少原始数组。

这个例子确定数组中所有数字的总和

<!DOCTYPE html>
<html><body><p id="demo"></p><script>var numbers = [12, 53, 86, 99, 77, 88, 66];var sum = numbers.reduceRight(myFunction);document.getElementById("demo").innerHTML = "12+53+86+99+77+88+66的总和:" + sum;function myFunction(total, value, index, array) {return total + value;}</script></body></html>

Array.every()

every() 方法检查所有数组值是否通过测试

<!DOCTYPE html>
<html lang="en"><body><p id="demo"></p><script>var numbers = [12, 53, 86, 99, 77, 88, 66];var all50 = numbers.every(myFunction); document.getElementById("demo").innerHTML = "大于50的是" + all50;function myFunction(value, index, array) {return value > 50;}</script>
</body></html>

请注意此函数接受 3 个参数:项目值 项目索引 数组本身

如果回调函数仅使用第一个参数(值)时,可以省略其他参数

<!DOCTYPE html>
<html lang="en"><body><p id="demo"></p><script>var numbers = [12, 53, 86, 99, 77, 88, 66];var all50 = numbers.every(myFunction); document.getElementById("demo").innerHTML = "大于50的是" + all50;function myFunction(value) {return value > 50;}</script>
</body></html>

Array.some()

some() 方法检查某些数组值是否通过了测试。

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);function myFunction(value, index, array) {return value > 18;
}

请注意此函数接受 3 个参数:项目值 项目索引 数组本身

Array.indexOf()

indexOf() 方法在数组中搜索元素值并返回其位置。

注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推

检索数组中的项目 "Apple":

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

语法

array.indexOf(item, start)

item

必需。要检索的项目。

start

可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。

如果未找到项目,Array.indexOf() 返回 -1。

Array.lastIndexOf()

Array.lastIndexOf()Array.indexOf() 类似,但是从数组结尾开始搜索。

<!DOCTYPE html>
<html lang="en"><body><p id="demo"></p><script>var fruits = ["Apple", "Orange", "Apple", "Mango"];var a = fruits.lastIndexOf("Apple");document.getElementById("demo").innerHTML = "Apple is found in position " + (a + 1);</script>
</body></html>

Array.find()

find() 方法返回通过测试函数的第一个数组元素的值

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p><script>
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);document.getElementById("demo").innerHTML = "大于 18 的第一个值是:" + first;function myFunction(value, index, array) {return value > 18;
}
</script></body>
</html>

请注意此函数接受 3 个参数:项目值 项目索引 数组本身

Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。

<!DOCTYPE html>
<html><body><p id="demo"></p><script>var numbers = [4, 9, 16, 25, 29];var first = numbers.findIndex(myFunction);document.getElementById("demo").innerHTML = "大于 18 的第一个值的索引是:" + first;function myFunction(value, index, array) {return value > 18;}</script></body></html>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • WPF篇(5)- Border控件(边框布局)+GridSplitter分割窗口
  • Linux虚拟化技术的演进:Xen与KVM的历程与影响
  • 【Kubernetes】k8s集群之Pod容器资源限制和三种探针
  • 河南萌新联赛2024第(四)场:河南理工大学补题(B,C,I)
  • 软件测试面试题汇总,超详细整理。。。
  • 【https】无法安装OpenSSL时如何在局域网开通https服务
  • 常见8种数据结构
  • 好领导都会用三招管好下属!
  • 三数之和(LeetCode)
  • 全栈监控:一目了然的 IT 管理
  • 第13节课:Web Workers与通信——构建高效且实时的Web应用
  • MySQL笔记-基础篇(一):查询
  • EdgeWorkers 最佳实践丨助力流媒体创新
  • 深入理解 Java SPI - 概念、原理、应用
  • JavaScript基础(30)_事件的冒泡、事件的委派
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Java方法详解
  • mysql innodb 索引使用指南
  • PAT A1017 优先队列
  • spark本地环境的搭建到运行第一个spark程序
  • swift基础之_对象 实例方法 对象方法。
  • 从零搭建Koa2 Server
  • 从伪并行的 Python 多线程说起
  • 从重复到重用
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 区块链共识机制优缺点对比都是什么
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • #前后端分离# 头条发布系统
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (分类)KNN算法- 参数调优
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (十一)图像的罗伯特梯度锐化
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (算法)硬币问题
  • (五)MySQL的备份及恢复
  • (一)Docker基本介绍
  • (一)为什么要选择C++
  • ./configure、make、make install 命令
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET 解决重复提交问题
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .NET企业级应用架构设计系列之开场白
  • .NET下的多线程编程—1-线程机制概述
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka