JavaScript基础(16)_数组方法、数组遍历、foreach

news2025/1/16 8:22:44

数组方法

unshift():向数组开头添加一个或多个元素,并返回新的数组长度。向前边插入元素以后,其他的元素索引会依次调整。

push():向数组的末尾添加一个或多个元素,并返回数组新的长度。该方法会将数组新的长度作为返回值返回。

shift():删除数组的第一个元素,并将被删除的元素作为返回值返回。

pop():删除数组的最后一个元素,并将被删除的元素作为返回值返回。

concat():连接两个或多个数组,并将新的数组返回。该方法不会对原数组产生影响。

join():将数组转换为一个字符串。该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回。在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符,如果不指定连接符,则默认使用,作为连接符。

reverse():反转数组(前边的去后边,后边的去前边)。该方法会直接修改原数组。

sort():可以用来对数组中的元素进行排序。该方法会影响原数组,默认会按照Unicode编码进行排序。

sort()数值排序

我们可以自己修改回调函数来指定排序的规则,回调函数需要两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数,使用哪个元素调用不确定,但是肯定是在数组中a一定在b前边,浏览器会根据回调函数的返回值来决定元素的顺序。如果返回一个大于0的值,则元素会交换位置,如果返回0或者负数,则元素位置不变。

根据自定义评判标准:

a 小于 b,在排序后的数组中 a 应该出现在 b 之前,就返回一个小于 0 的值。

如果 a 等于 b,就返回 0。

如果 a 大于 b,就返回一个大于 0 的值。

因此对数值进行排序可以增加回调函数,修改为:

数值升序排列:return a-b;

arr.sort(function(a,b){return a-b;})

数值降序排列:return b-a;

arr.sort(function(a,b){return b-a;})

slice(start,end):从某个已有的数组返回选定的元素。该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回。

参数:

1.截取开始位置的索引,包含开始索引。

2.截取结束位置的索引,不包含结束索引。第二个参数可以省略不写,此时会截取从开始索引往后的所有元素。

注意:参数也可以传递一个负值,表示从后往前计算,可以理解为倒数第~

splice():删除数组中的指定元素。使用splice()会影响到原数组,会将指定元素从原数组中删除,并将删除的元素作为返回值返回。

参数:

第一个,表示开始位置的索引。

第二个,表示删除的数量。

第三个及以后。。,可以传递一些新的元素,这些元素将自动插入到开始位置索引前边。

数组遍历

for循环遍历数组

for(var i=0;i<arr.length;i++){

console.log(arr[i]);

}

forEach()

语法 arr.forEach(function(value, index, arr), this);

value(必须): 当前遍历时的数组值。

index(可选): 当前遍历时的索引值。

arr(可选): 数组对象本身。

this(可选): 执行回调函数时的。

注意:forEach()方法需要一个函数作为参数。像这种函数由我们创建但是不由我们调用的,我们称之为回调函数。数组中有几个元素函数就会执行几次。

示例:

<script>
        var arr = ["张三","李四","王五"];
        var result = arr.push("赵六","朱七","江八");
        console.log(arr,result);
        var result = arr.unshift("余一","秦二");
        console.log(arr,result);
        arr.shift();
        var result = arr.shift();
        console.log(arr,result);
        arr.pop();
        var result = arr.pop();
        console.log(arr,result);
        console.log(arr.slice(0,2));
        console.log(arr,arr.splice(0,1,"余一","秦二","张三"))
        console.log(arr.join("__"));
        console.log(arr.reverse());
        arr2 = [1,3,11,2,8,12];
        console.log(arr2.sort(function(a,b){return a-b;}))

        // 创建类名为人的对象
        function Person(name,age){
            this.name = name;
            this.age = age;
        }
        // 修改toString方法
        Person.prototype.toString = function(){
            return "Adult:[name = "+this.name+",age = "+this.age+"]";
        };
        var per = new Person("张三",18);
        var per2 = new Person("李四",28);
        var per3 = new Person("王五",8);
        var per4 = new Person("赵六",12);
        var per5 = new Person("朱七",32);
        // 将对象纳入数组
        var perArr = [per,per2,per3,per4,per5];
        // 建立新数组,筛选年龄大于等于18的成年人信息
        function arrAdult()
        {
            var adult_per =[];
            for(i=0;i<perArr.length;i++)
            {
                if(perArr[i].age>=18) {
                    adult_per.unshift(perArr[i]);
                }             
            }
            return adult_per;
        }
        // 将成人信息返回给变量adult
        var adult = arrAdult();
        console.log(adult);
        console.log(adult.toString());
        adult.forEach(function(a){console.log(a);});
    </script>

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

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

相关文章

【工具推荐】 Obsidian 插件 Obsidian to Flomo 一键同步内容到 Flomo 插件

目录一、Obsidian、Flomo、Obsidian to Flomo 他们都是什么&#xff1f;1. 什么是 Obsidian &#xff1f;2. 什么是Flomo &#xff1f;3. 什么是Obsidian to Flomo &#xff1f;二、如何安装 Obsidian to Flomo &#xff1f;三、插件使用方法1. 启用插件并配置API四、如何使用插…

《2022大数据产业年度创新技术突破》榜重磅发布丨金猿奖

‍年度金猿榜单/奖项本届“数据猿年度金猿策划活动——2022大数据产业创新技术突破榜单/奖项”由金猿&数据猿共同推出。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年下半年度&#xff0c;由数据猿、金猿组委会共同推出的第五届 “年度金猿季大型主题策划活动”…

Unity Netcode for GameObjects多人联机(源文件)

一、安装Netcode for Gameobjects Netcode for Gameobjects是Unity新推出的联机解决方案&#xff0c;该解决方案目前处于初期&#xff0c;相关功能不是很完善&#xff0c;但是用起来还不错。下面介绍一下相关用法。 首先下载安装Netcode for Gameobjects&#xff0c;其官方网站…

Elasticsearch入门介绍及Linux安装

前言Elasticsearch是一款分布式高性能的全文搜索引擎&#xff0c;为什么会需要这个呢&#xff0c;像我们平常使用的最多的存储工具就是Mysql&#xff0c;在业界也是非常有名的&#xff0c;我们大部分结构化数据都是用它来存储的&#xff0c;sql语言的操作也是非常方便&#xff…

助力“智慧港口”建设,北部湾港联合美创打造的主数据管理系统上线!

数字化浪潮下&#xff0c;港口企业发展将致力于以数据价值提升和数据价值创造为目标&#xff0c;打造新型“智慧港口”&#xff0c;实现更加经济的港口资源统筹高效利用并降低各类成本&#xff0c;企业通过逐步转变信息资源管理工作模式和利用方式&#xff0c;深度应用新一代信…

在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)

1 简介 Cloud SQL 是GCP上的关系型数据库&#xff0c;常用的有三种方式来创建&#xff1a; (1) 界面操作 (2) 命令行 gcloud (3) Terraform 在开始之前&#xff0c;可以查看&#xff1a;《初始化一个GCP项目并用gcloud访问操作》。 2 GCP 操作界面 登陆GCP&#xff0c;选…

Chevereto V4 首页显示图片托管数量的实现方法

博主最近一直想在Chevereto V4 首页显示图片托管数量&#xff0c;但是网上的方法只针对于Chevereto V3&#xff0c;V4却没有相关教程&#xff0c;查询谷歌也无结果&#xff0c;经博主查询大量案例今天为大家分享一下 Chevereto V4 首页显示图片托管数量的实现方法。1. 修改后台…

70.语义分割和数据集

在 之前讨论的目标检测问题中&#xff0c;我们一直使用方形边界框来标注和预测图像中的目标。 本节将探讨语义分割&#xff08;semantic segmentation&#xff09;问题&#xff0c;它重点关注于如何将图像分割成属于不同语义类别的区域。 与目标检测不同&#xff0c;语义分割可…

20230112编译AIO-3568J的Buildroot(rk356x_linux_release_v1.3.0b_20221213)

20230112编译AIO-3568J的Buildroot&#xff08;rk356x_linux_release_v1.3.0b_20221213&#xff09; 2023/1/12 20:40 当前可以拿到的Buildroot的SDK&#xff1b; rk356x_linux_release_v1.0.0_20210511_split_dir rk356x_linux_release_v1.2.0_20211019_split_dir rk356x_linu…

Ventoy主题美化,以及自行制作方法

Ventoy是基于grub2 所制作的&#xff0c;所以可以自行制作或者将现成的主题套用到Ventoy 方法一&#xff1a; 主题下载地址 上面是两个可以直接使用的Ventoy主题地址&#xff0c;然后下载下来解压文件&#xff0c;我们可以得到 接着往下走&#xff0c;我们可以的得到 现在我们…

Oracle Apex低码平台-定制验证方案

Oracle Apex低码平台-定制验证方案 0 APEX简介&#xff1a; Oracle APEX 是一个低代码开发平台&#xff0c;您可以在该平台上构建可扩展的安全企业应用程序。这些应用程序具有先进的功能&#xff0c;而且可以在任何地方部署。 构建企业应用速度提高 20 倍&#xff0c;代码减…

Dubbo服务降级

Dubbo服务降级 1. 为什么需要服务降级 RPC 是解决分布式系统通信问题的一大利器&#xff0c;而分布式系统的一大特点就是高并发&#xff0c;所以说 RPC 也会面临高并发的场景。在这样的情况下&#xff0c;我们提供服务的每个服务节点就都可能由于访问量过大而引起一系列的问题…

Chrome浏览器插件推荐【第一期】

1、Tampermonkey Tampermonkey&#xff08;油猴&#xff09;是一款免费的浏览器扩展和最为流行的用户脚本管理器&#xff0c;它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏览器拥有原生的用户脚本支持&#xff0c;但 Tampermonkey 将在…

Webpack的应用

处理css文件 总共有src目录下的index.css和index.js、同根的index.html和webpack.config.js文件&#xff0c;然后npm init之后生成package.json文件&#xff0c;npm install后生成package-lock.json文件&#xff0c;最后npm run webpack之后有dist目录下各种文件 index.js i…

nodejs使JWT(全)

Token token表示令牌&#xff0c;用户的登录凭证。 基于 Token 的身份验证方法&#xff0c;使用基于 Token 的身份验证方法&#xff0c;在服务端不需要存储用户的登录记录。大概的流程是这样的&#xff1a; 客户端使用用户名跟密码请求登录服务端收到请求&#xff0c;去验证…

css动画效果之transform

transformTransform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转&#xff0c;缩放&#xff0c;移动&#xff0c;倾斜等。旋转rotate、扭曲skew、移动translate、缩放scale、矩阵变形matrix属性名扩展写法属性含义none定义不进行转换。rotaterotateX()&#xff08;3D写…

rabbitmq+netcore6 【5】Topics:主题

文章目录1&#xff09;前言2&#xff09;Topic exchange 主题交换机3&#xff09;举例4&#xff09;总结5&#xff09;综合以上代码准备工作生产者消费者1消费者2结果验证官网参考链接&#xff1a; https://www.rabbitmq.com/tutorials/tutorial-five-dotnet.html其他人的翻译版…

臻图信息搭建智慧水务管理平台,保障供水安全运行

伴随着城市智慧化进程&#xff0c;供水系统也在朝着高度集成化、数字化、智能化的管理模式发展。在2022年&#xff0c;水利部也印发了相关水务保障规划&#xff0c;对供水工程的建设、运行管理、水源保护等管理提出了明确要求&#xff0c;采取物联网、互联网等措施&#xff0c;…

从“以旧换新”送手机看年礼消费新风尚

千门万户曈曈日&#xff0c;总把新桃换旧符。每年的春节&#xff0c;都是中国人辞旧迎新的重要时刻。在新春年礼的选择上&#xff0c;曾经的“烟酒糖茶”老四样正在逐渐被其他新潮年礼所替代&#xff0c;手机等诸多科技好物被纳入到送年礼清单。手机年货很“潮”&#xff0c;让…

Redis整理合集

SQL和NOSQL的区别?SQLNOSQL数据结构结构化非结构化数据关联关联的非关联的查询方式SQL查询非SQL查询事物特性ACID&#xff08;事务&#xff09;BASE存储方式磁盘内存扩展性垂直水平使用场景数据结构固定相对业务对数据的安全性一致性需求较高数据结构不固定对一致性、安全性需…