JavaScript数组

news2024/12/28 4:51:19

1.数组是什么
2.数组的基本使用
3.操作数组
4.数组案例

一、数组是什么?

 1.数组(Array)是一种可以按顺序保存数据的数据类型
 2.为什么要使用数组?
    例如:如果想保存一个班所有同学的姓名怎么办?
    场景:如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便。

二、数组的基本使用

1.声明语法
let 数组名 = [数据1,数组2,…,数据n]
let arr = new Array(数据1,数据2,…,数据n)

 //1.字面量声明数组
 let arr = [1,2,'pink',true];
 //2.使用new Array构造函数声明
 let arr1 = new Array(1,2,3,4);
 console.log(arr);

*数组是按顺序保存,所以每个数据都有自己的编号
*计算机中的编号从0开始,到1,2,3,…,以此类推
*在数组中,数据的编号也叫索引或下标
*数组可以存储任意类型的数据

2.取值语法
数组名[下标]

 let names = ['小明','小丽','小雅','小米'];
 name[0] //小明
 name[1] //小丽

*通过下标取数据
*取出来是什么类型的,就根据这种类型特点来访问

3.一些术语
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号
长度:数组中数据的个数,通过数组的length属性获得

let names = ['小明','小丽','小雅','小米'];
name[0] //小明
name[1] //小丽
console.log(names.length);//4

4.遍历数组(重点)
目标:能够遍历输出里面的元素
1.用循环把数组中每个元素都访问到,一般会用for循环遍历
2.语法:
for(let i = 0;i < 数组名.length;i++){
数组名[i];
}
3.例:

let nums = [10,20,30,40,50,60];
for(let i = 0;i < nums.length;i++){
    document.write(nums[i]);
}

5.数组排序
数组.sort()方法可以排序
语法:

 let arr = [4,2,5,1,3]
 //1.升序
 arr.sort(function(a,b){
     return a-b;
 })
 console.log(arr)//[1,2,3,4,5]
 //2.降序
 arr.sort(function(a,b){
     return b-a;
 })
 console.log(arr)//[5,4,3,2,1]

三、操作数组

   数组本质是数据集合,操作数据无非就是增删改查语法:

在这里插入图片描述

let arr = [];
//查询
console.log(arr);//[]
console.log(arr[0]);//undefined

arr[0] = 1;
arr[1] = 5;
console.log(arr);//[1,5]

//修改
arr[0] = 'hotpink';
console.log(arr);//['hotpink',5]

新增:
1.掌握利用push向数组添加元素(数据)
*数组.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度(重点)。
*语法
arr.push(元素1,…,元素n)
*例如:

let arr = ['red','green']
arr.push('pink');
console.log(arr);//['red','green','pink']

2.在数组开头添加数据元素用unshift方法
arr.unshift()
可以添加一个或者多个数组元素
返回的是数组长度
删除:
1.pop()删除最后一个元素
*数组.pop()方法从数组中删除最后一个元素,并返回该元素的值
*语法:
arr.pop()
*例如:

let arr = ['red','green']
arr.pop()
console.log(arr) //['red']

2.shift()删除第一个元素

 let arr = ['red','green','blue']
  arr.shift()
  console.log(arr)//['green','blue']

3.splice()删除指定元素
*数组.splice()方法,删除指定元素
*语法:
arr.splice(start,deleteCount)
arr.splice(起始位置,删除几个元素)
start从0开始,deleteCount可选,如果省略默认从开始位置删除到最后。
使用场景:随机抽奖,删除指定商品

```javascript
 let arr = ['red','green','blue']
  arr.splice()
  console.log(arr)//['green','blue']

四、数组案例

1.数组求和

 let arr = [2,6,1,7,4];
 let sum = 0;
 for(let i=0;i<arr.length;i++){
     sum += arr[i]
 }
 console.log(`数组的和的结果是:${sum}`);
 console.log(`数组的平均值结果是:${sum/arr.length}`);

2.求最大值最小值

        let arr = [2,6,1,7,8];
        let max = arr[0];
        let min = arr[0];
        for(let i = 1;i < arr.length;i++){
            //方法1:
            // if(max < arr[i]){
            //     max = arr[i];
            // }
            // if(min > arr[i]){
            //     min = arr[i];
            // }

            //方法2:
            max < arr[i] ? max = arr[i] : max;
            min > arr[i] ? min = arr[i] : min;
        }
        console.log(`最大值是:${max}`);
        console.log(`最小值是:${min}`);

3.数组筛选
1.选出数组中大于等于10的元素

 let arr = [2,0,6,1,77,9,54,3,78,9];
 //1.声明新数组
 let newArr = [];
 //2.遍历旧数组
 for(let i = 0;i < arr.length; i++){
     if(arr[i] >= 10){
         //3.满足条件追加给新的数组
         newArr.push(arr[i]);
     }
 }
 //4.输出新的数组
 console.log(newArr);

2.数组去0

let arr = [23,0,1,324,10,20,34,50,9];
let newArr = [];
for(let i = 0;i < arr.length;i++){
    if(arr[i] !== 0){
        newArr.push(arr[i]);
    }
}
console.log(newArr);

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

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

相关文章

vue3中ts定义对象,pinia中使用ts定义状态对象

文章目录 引入reactive中使用数组reactive中定义对象类型pinia中定义状态对象 引入 用惯了js&#xff0c;突然使用ts属实有点不习惯&#xff0c;这里介绍一下自己在vue3中使用ts初始化内容的一些小技巧 reactive中使用数组 例如下面所示的代码&#xff0c;我们就像写js代码一…

数组a与数组b作内积:即a和b所有对应位置两元素相乘 将所有的相乘结果(积)求和 numpy.inner(a,b)

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 数组a与数组b作内积&#xff1a; 即a和b所有对应位置两元素相乘 将所有的相乘结果(积)求和 numpy.inner(a,b) [太阳]选择题 请问关于以下代码的输出结果是&#xff1f; import numpy as np …

招银网络科技-2024届暑期实习-Java后端开发

目录 1.SpringBoot 中的 SpringBootApplication注解的作用是什么&#xff1f;2.SpringBoot 中你们是如何加载配置信息的&#xff1f;3.RabbitMQ 如何保证消息不丢失&#xff1f;4.如果消费者这边消费到一半宕机了怎么办&#xff1f;5.RabbitMQ 如何保证消息没有被重复消费&…

C语言函数大全-- w 开头的函数(3)

C语言函数大全 本篇介绍C语言函数大全-- w 开头的函数 1. wcsdup 1.1 函数说明 函数声明函数功能wchar_t *wcsdup(const wchar_t *str);用于复制宽字符字符串 参数&#xff1a; str &#xff1a; 待复制的宽字符串 返回值&#xff1a; 如果成功复制&#xff0c;则返回指向该…

跨域解决方案

同源策略 同源策略是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;浏览器很容易受到XSS、CSRF等攻击。 所谓的同源是指【协议域名端口】三者相同&#xff0c;即便两个不同的域名&#xff0c;指向同一个IP地址&#xf…

手把手教你下载darknet_ros

前两天下载darknet_ros&#xff0c;好怪啊&#xff0c;是我太菜了&#xff0c;根本看不懂这都啥啊&#xff0c;所以记录一下 首先附上链接 这里是github上的代码&#xff1a;https://github.com/leggedrobotics/darknet_ros 这里是gitcode上的代码&#xff1a;https://gitcode…

软件技术体系汇总-Spring篇

Spring源码学习总结 版本说明 系列文章是本人在学习 Spring 源码的过程中总结 Spring 版本&#xff1a;5.2.8.RELEASE 调试工具&#xff1a;IDEA2020.3 作者&#xff1a;虎哥 常见面试题 1. 什么是 Spring Framework &#xff1f; 官方文档&#xff1a; Spring makes it eas…

U-Mail邮件中继完美解决邮件超大附件发送难题

随着企业数字化转型的逐步深入&#xff0c;电子邮件成为了企业内部或与外部业务沟通交流的重要方式之一。但是我们在发送电子邮件的时候&#xff0c;如果邮件中包含工程设计图纸&#xff0c;视频文件、产品设计方案等超大附件&#xff0c;发送的邮件会被对方邮件服务器拒收&…

[架构之路-199] - 可靠性需求与可靠性分析:鱼骨图、故障树分析法FTA、失效模式与影响DFMEA,找到影响故障的主要因素

目录 引言&#xff1a; 第1章 故障树分析法与鱼骨图的比较 1.1 相同点 1.2 区别点 第2章 鱼骨图 第3章 故障树 3.1 示意图 3.2 故障树解读 3.3 故障树常见符号 第4章 产品失效(Failure)模式分析DFMEA 引言&#xff1a; 目标系统/产品的可靠性和性能在客户需求阶段就…

从浏览器输入域名开始分析 DNS 解析过程

摘要&#xff1a;DNS&#xff08;Domain Name System&#xff09;是域名系统的英文缩写&#xff0c;是一种组织成域层次结构的计算机和网络服务命名系统&#xff0c;用于 TCP/IP 网络。 本文分享自华为云社区《DNS 那些事 —— 从浏览器输入域名开始分析 DNS 解析过程》&#x…

基于SSM的大学生就业信息管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

常见指令以及权限理解(Linux)

常见指令以及权限理解 命令格式&#xff1a; command [-options] parameter1 parameter1 命令 选项 参数1 参数2 1.command为命令名称&#xff0c;例如变化目录的cd等 2.中括号[ ]实际在命令中是不存在的&#xff0c;这个中括号代表可选&#xff0c;通常选项前面会添加一个符号…

【数据科学赛】HackAPrompt 挑战语言模型!

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页[1] 以下信息由AI辅助创作&#xff0c;仅供参考&#xff0c;请以官网为准&#xff08;文末…

激活函数Relu对精度和损失的影响研究

1 问题 在学习深度学习的过程中&#xff0c;欲探究激活函数Relu对精度和损失的影响。 2 方法 测试设置激活函数时和没有设置激活函数时网络的性能。 控制其余变量&#xff1a; Beach_size128optimizer torch.optim.SGD网络为三层全连接网络&#xff08;784->512->10&…

systemctl针对service类型的配置文件

文章目录 systemctl针对service类型的配置文件systemctl配置文件相关目录简介systemctl配置文件的设置项目简介两个vsftpd运行的实例多重的重复设置方式&#xff1a;以getty为例将tty数量由6个降低为4个暂时新增vsftpd到1212端口 自己做个服务 systemctl针对service类型的配置文…

事件循环Event Loop

什么是事件循环&#xff08;event loop&#xff09; 主线程不断的从消息队列中获取消息&#xff0c;执行消息&#xff0c;这个过程被称为事件循环&#xff0c;在javaScript中就是采用事件循环来解决单线程带来的问题 线程和进程 进程&#xff1a;计算机已经运行的程序&#…

睿智的目标检测66——Pytorch搭建YoloV8目标检测平台

睿智的目标检测66——Pytorch搭建YoloV8目标检测平台 学习前言源码下载YoloV8改进的部分&#xff08;不完全&#xff09;YoloV8实现思路一、整体结构解析二、网络结构解析1、主干网络Backbone介绍2、构建FPN特征金字塔进行加强特征提取3、利用Yolo Head获得预测结果 三、预测结…

GOOGLE|只有大模型才能理解你举的例子(In-context learning)是什么

一、概述 title&#xff1a;LARGER LANGUAGE MODELS DO IN-CONTEXT LEARNING DIFFERENTLY 论文地址&#xff1a;https://arxiv.org/abs/2303.03846 参考&#xff1a;https://www.xiaohongshu.com/user/profile/5f01057f0000000001003c91/640aa237000000001303d871 1.1 Moti…

Java高阶数据结构 图补充-拓扑排序

拓扑排序 文章目录 Java高阶数据结构 & 图补充-拓扑排序1. 什么是拓扑排序2. 拓扑排序算法思想-卡恩算法3. 拓扑排序代码实现3.1 遍历链表计算入度3.2 挑选一个入度为0的顶点3.3 输出顶点3.4 判断循环结束是否为全-13.4 *kahn*方法3.5 测试 Java高阶数据结构 & 图补充…

python内置函数,推导式

abs&#xff1a;取绝对值 data abs&#xff08;-10&#xff09; pow&#xff1a;次方 data pow&#xff08;2&#xff0c;5&#xff09; sum&#xff1a;求和 num_list p[1,2,10,20] res sum(num_list) divmod取商和余数&#xff1a; v1&#xff0c;v2 divmod&…