Js--数组(三)

1.什么是数组?

数组:(Array)是一种可以按顺序保存数据的数据类型


2.为什么要数组?

思考:如果我想保存一个班里所有同学的姓名怎么办?

 场景:如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便


3.数组的基本使用

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

  • 4. 遍历数组(重点) 

小案例:数组求和

 需求:求数组 arr = [10,20,40,60,80]里面所有元素的和以及平均值

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>let arr = [10,20,40,60,80]let sum = 0for(let i = 0;i<arr.length;i++ ){sum+=arr[i]}let result = sum / arr.lengthconsole.log(`数组的平均值是:${result}`)</script>
</body>
</html>


4.数组的增删改查操作(重点)

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

语法:

  •  操作数组-新增

数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度 (重点)

数组.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度 

 操作数组-删除

数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值

数组. shift() 方法从数组中删除第一个元素,并返回该元素的值 

数组. splice() 方法 删除指定元素 

总结

5.数组排序 

6.数组练习案例

案例1:根据数据生成柱形图

需求: 用户输入四个季度的数据,可以生成柱形图
分析:
①:需要输入4次,所以可以把4个数据放到一个数组里面
Ø 利用循环,弹出4次框,同时存到数组里面
②:遍历改数组,根据数据生成4个柱形图,渲染打印到页面中
Ø 柱形图就是div盒子,设置宽度固定,高度是用户输入的数据
Ø div里面包含显示的数字和 第n季度

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 清除内外边距 */* {margin: 0;padding: 0;}.box {display: flex;width: 700px;height: 300px;border-left: 1px solid pink;border-bottom: 1px solid pink;margin: 50px auto;justify-content: space-around;align-items: flex-end;text-align: center;}.box>div {display: flex;width: 50px;background-color: pink;flex-direction: column;justify-content: space-between;}.box div span {margin-top: -20px;}.box div h4 {margin-bottom: -35px;width: 70px;margin-left: -10px;}</style>
</head><body><script>// 1. 四次弹框效果// 声明一个新的数组let arr = []for (let i = 1; i <= 4; i++) {// let num = prompt(`请输入第${i}季度的数据:`)// arr.push(num)arr.push(prompt(`请输入第${i}季度的数据:`))// push记得加小括号,不是等号赋值的形式}// console.log(arr)  ['123','135','345','234']// 盒子开头document.write(` <div class="box">`)// 盒子中间 利用循环的形式  跟数组有关系for (let i = 0; i < arr.length; i++) {document.write(`<div style="height: ${arr[i]}px;"><span>${arr[i]}</span><h4>第${i + 1}季度</h4></div>          `)}// 盒子结尾document.write(` </div>`)</script>
</body></html>

 案例2:冒泡排序

冒泡排序是一种简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重
复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
比如数组 [2,3,1,4,5] 经过排序成为了 [1,2,3,4,5] 或者 [5,4,3,2,1]

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 使用冒泡排序对数组进行重新排序let arr = [10,45,14,16,24,78,45,12,34]for(let i =0;i<arr.length-1;i++){for(let j = 0;j<arr.length-i-1;j++){//当后面这个比前面这个大时,则交换位置if(arr[j] > arr[j+1]){let temp = arr[j]arr[j] = arr[j+1]arr[j+1] = temp}}}console.log(arr)//js提供的排序的函数let arrSort = [14,10,15,14,12,75,24]//默认是自然排序(升序)arrSort.sort();console.log(arrSort)//控制升降序let controlSort = [10,9,7,15,12,75,14,16]// 升序// controlSort.sort(function(a,b){//   return a-b// })// 降序acontrolSort.sort(function(a,b){return b-a})console.log(controlSort)</script>
</body>
</html>

按例三:根据用户输入的个数,页面可以渲染对应王者荣耀永雄的个数

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.main {width: 600px;/* 清除浮动 */clear: both;/* 居中 */margin: 20px auto;background-color: pink;}.img img {float: left;width: 100px;height: 100px;border: 1px solid skyblue;border-radius: 10px 0 10px 0;margin: 3px;}</style>
</head>
<body><!-- <div class="main"><div class="img"><img src="images/1.webp" alt=""></div></div> --><script>let num  while(true){num = +prompt('请输入1-20个英雄的个数')if(num>20 || num<=0){alert('你输入的数字有误,不在1-20之间')}else{break}}document.write('<div class="main">')for(let i = 1;i<=num;i++){document.write(`<div class="img"><img src="images/${i}.webp" alt=""></div>`)}document.write(' </div>')</script>
</body>
</html>

JS的数组和Java的不同

  • Js的数据多了好多内置的方法,可以通过方法添加元素,删除元素,还可以直接使用数组进行排序
  • 在java中数组是无法修改大小的,而且Java中数组大小一旦确认后就没法修改了,还有就是java中的数组一般只能存储一种类型的,不像Js可以存储多种类型
  • JS的数据更像Java中的集合

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

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

相关文章

MacBook安装Docker

MacBook安装Docker dmg包安装 官方下载dmg安装包: https://docs.docker.com/desktop/mac/install/ 点击安装&#xff0c;然后启动 二进制安装 官方下载二进制包: https://download.docker.com/mac/static/stable/x86_64/ tar -zxvf docker-20.10.0.tgz#将解压出来的docke…

Apppium driver的一些比较重要操作,原生APP和H5 APP(WEBVIEW)

1.reset() //重置app 这时候driver会重置&#xff0c;相当于卸载重装应用。所以本地缓存会失效 driver.reset() 2.start_activity(包名,activity名) //启动app的某一个activity 例如&#xff1a;driver.start_activity("com.wuba.zhuanzhuan","./presentatio…

9个Linux网络命令

这些命令用于监控连接、排除网络故障、路由选择、DNS 查询和接口配置。 1. ping – 向网络主机发送 ICMP ECHO_REQUEST ping 是用于测试网络连接的最流行的网络终端工具。ping 有很多选项&#xff0c;但在大多数情况下&#xff0c;您将使用它来请求域或IP地址&#xff1a; p…

【AI视野·今日CV 计算机视觉论文速览 第285期】Mon, 8 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Mon, 8 Jan 2024 Totally 66 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Denoising Vision Transformers Authors Jiawei Yang, Katie Z Luo, Jiefeng Li, Kilian Q Weinberger, Yonglong Tian, Yue…

【漏洞复现】Apache Tomcat AJP文件包含漏洞(CVE-2020-1938)

Nx01 产品简介 Apache Tomcat 是一个免费的开源 Web 应用服务器&#xff0c;在中小型企业和个人开发用户中有着广泛的应用。 Nx02 漏洞描述 默认情况下&#xff0c;Apache Tomcat会开启AJP连接器&#xff0c;由于AJP服务&#xff08;8009端口&#xff09;存在文件包含缺陷&…

打造高性价比小程序,轻松降低成本

随着移动互联网的普及&#xff0c;小程序已经成为一个热门的应用开发方向。然而&#xff0c;对于许多企业和个人而言&#xff0c;制作一个小程序的费用却让人望而却步。那么&#xff0c;如何以最低的成本制作一款高性价比的小程序呢&#xff1f; 答案很简单&#xff0c;只需要找…

Spark SQL基础

SparkSQL基本介绍 什么是Spark SQL Spark SQL是Spark多种组件中其中一个,主要是用于处理大规模的结构化数据 什么是结构化数据: 一份数据, 每一行都有固定的列, 每一列的类型都是一致的 我们将这样的数据称为结构化的数据 例如: mysql的表数据 1 张三 20 2 李四 15 3 王五 1…

支付宝异步验签踩的坑

最近公司要做支付宝小程序 我作为服务端就要给小程序配置下单啊&#xff0c;异步回调同步支付状态等功能 就不可避免的使用到了支付宝异步验签 首先背景是我是PHP语言&#xff0c;然后验签方式是RSA2 一开始写原生验签方法&#xff0c;验签失败&#xff0c;后面又搞sdk 验签…

Java进阶十—JDBC

Java进阶十—JDBC 一.说明 用Java语言操作Mysql&#xff0c;首先需要学习Mysql MySQL入门教程-CSDN博客 二.JDBC的由来以及定义 JDBC是什么&#xff1f; Java数据库连接(Java Database Connectivity)简称JDBCJDBC是Java操作各数据库的一种规范&#xff0c;是Java语言中用来…

ChatGPT:人工智能与人类交流的桥梁

在人工智能的浪潮中&#xff0c;ChatGPT以其独特的交流能力成为了一个亮点。作为一个基于强大的GPT-4模型的聊天机器人&#xff0c;ChatGPT不仅仅是技术的展示&#xff0c;它更是人工智能与人类交流的桥梁。 人工智能的语言理解革命 ChatGPT的出现标志着人工智能在语言理解和…

攻防实战-手把手带你打穿内网

六朝何事&#xff0c;只成门户私计&#xff01; 目录 环境配置 网络配置 本次实战绘制出来的网络拓扑图如下&#xff1a; 第一层&#xff1a;12server-web1 信息搜集 网站url&#xff1a; 目录扫描 扫到后台地址&#xff1a; 发现有注册功能&#xff0c; 先注册一下尝试能…

浅谈Vue中的NextTick。

一、NextTick() 等待下一次 DOM 更新刷新的工具方法。 当你在 Vue 中更改响应式状态时&#xff0c;最终的 DOM 更新并不是同步生效的&#xff0c;而是由 Vue 将它们缓存在一个队列中&#xff0c;直到下一个“tick”才一起执行。这样是为了确保每个组件无论发生多少状态改变&…

预约上门按摩系统目前面临的挑战有哪些

按摩预约上门服务系统上线之后在运营的过程中主要面临的挑战主要有以下几个方面&#xff1a; 1.技师管理和培训&#xff1a;为了保证服务的质量&#xff0c;需要对技师进行管理和培训。这包括确保技师具备必要的技能和资格&#xff0c;以及提供必要的培训&#xff0c;以确保他们…

[金融支付]EMV是什么?

文章目录 EMVCoEMVCo是谁&#xff1f;EMVCo是做什么的&#xff1f;EMVCo是如何运作的&#xff1f;EMVCo 是否强制要求 EMV 规范&#xff1f; EMVEMV的历史背景EMV技术的一些关键点 EMV TechnologiesEMV 认证EMV的三层认证 EMV规范在全球各地存在差异参考 EMVCo EMVCo是谁&…

系列二、Spring Security中的核心类

一、Spring Security中的核心类 1.1、自动配置类 UserDetailsServiceAutoConfiguration 1.2、密码加密器 1.2.1、概述 Spring Security 提供了多种密码加密方案&#xff0c;官方推荐使用 BCryptPasswordEncoder&#xff0c;BCryptPasswordEncoder 使用 BCrypt 强哈希函数&a…

《BackTrader量化交易图解》第10章:Trade 交易操作

文章目录 10 Trade 交易操作10.1 量化回测分析流程10.2 Cerebro 类模块10.3 案例&#xff1a;Trade 交易10.4 实盘交易机器隐性规则10.5 Stake 交易数额和 Trade 交易执行价格 10 Trade 交易操作 10.1 量化回测分析流程 从本章开始讲解 BackTrader 的实盘操作。前面的章节讲过…

如何监控电脑屏幕-对电脑屏幕进行监控有什么方法?如何实现电脑屏幕监控?

随着电脑的普及&#xff0c;越来越多的人开始需要监控电脑屏幕&#xff0c;无论是出于工作需要还是家庭安全考虑。 然而&#xff0c;如何实现电脑屏幕监控却是一个需要探讨的问题。 一、监控电脑屏幕的方法 使用电脑监控软件&#xff0c;这是一种很常用的监控方式&#xff0c…

vivado编译设置、执行设置、bit流生成设置

合成设置 使用“合成设置”可以指定约束集、合成策略、合成选项&#xff0c;以及要生成的报告。选项由选定的定义综合策略或综合报告策略&#xff0c;但您可以用自己的策略覆盖这些策略设置。您可以选择一个选项来查看对话框底部的描述。了解更多有关“合成设置”的信息&#…

动态规划思想案例刨析

动态规划的思想 动态规划解决问题的核心思想是“重叠子问题”和“最优子结构”。 重叠子问题&#xff1a;在复杂问题中&#xff0c;往往存在许多重复的子问题。动态规划通过避免重复计算&#xff0c;将子问题的解保存起来&#xff0c;以便在需要时直接引用&#xff0c;从而提…

BSP视频教程第29期:J1939协议栈CAN总线专题,源码框架,执行流程和应用实战解析,面向车通讯,充电桩,模组通信等(2024-01-08)

视频教程汇总帖&#xff1a;【学以致用&#xff0c;授人以渔】2024视频教程汇总&#xff0c;DSP第12期&#xff0c;ThreadX第9期&#xff0c;BSP驱动第29期&#xff0c;USB实战第5期&#xff0c;GUI实战第3期&#xff08;2024-01-08&#xff09; - STM32F429 - 硬汉嵌入式论坛 …