JavaScript-数组-笔记

1.定义数组
数组: 可以存储任意数据类型,元素之间使用英文逗号隔开
1)使用new关键字定义数组
var 变量名 = new Array() ;定义空数组
var 变量名 = new Array(数据1,数据2) ; 定义有元素的数组
注意: 如果Array() 小括号中只有一个整数 —— 指的是数组的长度,没有赋值的元素是undefined
2)使用字面量定义数组
var 变量名 = [];定义空数组
var 变量名 = [数据1,数据2]; 定义有元素的数组

2.数组下标操作元素
获取元素:使用下标(索引)来获取元素 数组名[下标] 如果下标超出:值是undefined
下标从0开始的 从左到右 不能为负数
添加数据 数组名[下标] = 值 空出来的位置:undefined
修改数据 数组名[下标] = 值
删除数据 delete 数组名[下标] 清空值,位置保留 变成undefined

3.获取数组的长度、添加元素
元素的个数——数组的长度 数组名.length
数组最后一个下标 = 数组的长度-1
在数组后边添加元素: 数组[数组.length] = 值

4.循环遍历数组
循环遍历数组,获取每一个元素
for(var i=0;i<数组的长度;i++){
              // 操作
}


5.添加元素、删除元素
数组添加元素:
1、数组[数组.length] = 值   在数组后边添加元素
2、数组名.push(值)  在数组后边添加元素
3、数组名.unshift(值)  在数组的前边添加
数组删除元素:
1、delete 数组名[下标] :删除值保留位置
2、数组名.pop()   删除数组的最后一个元素,不保留位置
3、数组名.shift()   删除数组的第一个元素,不保留位置

6.计算数组中数字的和、求平均值
var arr = [80,85,60,90];
// 计算平均分 = 总和/个数
var sum = 0;
// 循环遍历数组---获取到每一个元素-----求和
for(var i=0;i<arr.length;i++){
        sum += arr[i]; // 加的是数组的当前元素 不是下标i
}
console.log(`数组的和是${sum}`);
console.log(`数组的平均数是${sum/arr.length}`); // 数组中元素的个数就是数组的长度

7.求数组中元素的最大值
最大值:
循环遍历数组-----获取到每一个元素
假设第一个元素就是最大的,存储在max中 max的作用就是存储最大值
元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max

var arr = [80, 85, 60, 90, 70];
// 定义变量max作为最大值 假设第一个元素的值就是最大的
var max = arr[0];
// 循环遍历数组
for(var i=0;i<arr.length;i++){
    // 元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max
    if( arr[i] > max ){
         max = arr[i];
    }
}
// 循环结束后输出最大值
console.log(max);

8.筛选数组
筛选数组:在循环遍历数组的时候加上if判断

// 数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 将大于10的元素 添加到新数组中 输出新数组
var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr2 = []; // 定义空数组
// 循环遍历数组arr1 对元素进行判断筛选
for(var i=0;i<arr1.length;i++){
    // 如果arr1中当前元素大于10 将当前元素存储在arr2中
    if( arr1[i] > 10 ){
        arr2.push(arr1[i]);
    }
}
console.log(arr2);

9.冒泡排序
冒泡排序: 每轮能将一个元素排在指定的位置,每轮中都是从第一个元素开始与相邻元素进行比较
以从小到大为例
外层表示轮数 ---- 每轮可以将一个元素放到指定位置 5个元素就4轮即可 元素的个数减一
内层表示比较次数 (充当下标) ----- 轮数i + 次数j = 元素的个数 j = 元素的个数-i
如果 当前元素 大于后边的 需要交换位置(借助第三方变量)

var arr = [2, 4, 5, 3, 1];
for(var i=0;i<arr.length-1;i++){ // 外层表示轮数 小于 元素的个数减一
   for(var j=0; j<arr.length-i; j++){ // 内层表示比较次数 (充当下标) 小于 元素的个数-i
        // 当前元素 大于后边的 需要交换位置
        if(arr[j] > arr[j+1]){
               var temp;   // 借助第三方变量 交换位置
               temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
         }
     }
}
console.log(arr);

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

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

相关文章

Jmeter 性能 —— 吞吐量与并发用户数关系!

1、吞吐量和并发用户数的关系 2、已知在线用户数为3000&#xff0c;算出对应的并发用户数 ①我们常用的确定并发用户数的公式是&#xff1a; C活动用户数操作时间/系统运行时间 如每天最大在线用户数为3000人&#xff0c;每个用户平均操作时间为1小时&#xff0c;系统运行时…

【后退N帧协议】- 协议应用与局限分析

后退N帧协议是计算机网络通信中常用的一种流量控制协议&#xff0c;用于确保数据的可靠传输。本文将深入探讨后退N帧协议的原理、应用场景及局限性。 后退N帧协议的核心思想是在发送端发送数据时&#xff0c;等待接收端返回的确认信号。发送端每次发送N帧数据&#xff0c;并等…

零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇

零基础学Python网络爬虫案例实战 全流程详解 入门与提高篇 零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇 编辑推荐 本书讲解了Python爬虫技术的高级进阶知识&#xff0c;帮助有一定爬虫基础的读者进一步提高爬虫技术。本书详解了突破反爬机制的常用手段以及Scrapy和…

基于SSM+Vue的学校社团管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

文章目录 1 靶面尺寸、像元尺寸、分辨率2 相机传感器的感光区尺寸规格1 靶面尺寸、像元尺寸、分辨率 工业相机基本知识理解:靶面尺寸、像元尺寸、分辨率 1、靶面尺寸:由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm 2、像元尺寸:单个感光元件的大小,一般都是正方形…

C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估

目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估 效果 模型信息 yolo_free_huge_widerfa…

Qt隐式共享浅析

一、什么是隐式共享 Qt 的隐式共享&#xff08;implicit sharing&#xff09;机制是一种设计模式&#xff0c;用于在进行数据拷贝时提高效率和减少内存占用。 在 Qt 中&#xff0c;许多类&#xff08;如 QString、QList 等&#xff09;都使用了隐式共享机制。这意味着当这些类…

色标在matplotlib和plottable中

是这样的&#xff0c;我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3]&#xff0c;它需要绘制散点图&#xff0c;点的颜色来代表数值大小&#xff1b;同时&#xff0c;也需要在plottable上作为一列显示&#xff0c;同样用颜色来代表数值的大小…

HarmonyOS应用开发学习笔记 ArkTS 布局概述

一、布局概述 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中&#xff0c;需要遵守以下流程保证整体的布局效果 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。 二…

【JUC】进程和线程

目录 &#x1f4e2;什么是进程?&#x1f3a1;什么是线程?&#x1f680;进程和线程的区别?&#x1f3a2;Java 线程和操作系统的线程有啥区别&#xff1f;&#x1f396;️JDK21的虚拟线程&#x1f3af;虚拟线程和平台线程的对比 &#x1f4e2;什么是进程? 进程是程序的一次执…

Zabbix“专家坐诊”第223期问答汇总

来源&#xff1a;乐维社区 问题一 Q&#xff1a;Zabbix 5.0安装完mysql之后怎么备份&#xff1f;忘记mysql当时创建的密码了&#xff0c;怎么样能查看设置的密码&#xff1f; A&#xff1a;mysql初始化密码在 /var/log/mysqld.log中可以看到&#xff0c;搜关键字temporary pas…

Android studio TabHost应用设计

一、xml布局文件: 添加TabHost控件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.…

【算法分析与设计】移动零

题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0…

电能计量芯片RN8209

电能计量芯片RN8209 简介2、操作2.1、复位2.2 模数转换2.3 有功功率2.4 无功功率2.5 有效值2.4 能量计算 RN8209中文手册 点击下载 简介 2、操作 2.1、复位 2.2 模数转换 2.3 有功功率 RN8209 提供两路有功功率的计算和校正&#xff0c;分别为电流 A 和电压有功功率计算和校正…

【笔记------freemodbus】一、stm32的裸机modbus-RTU从机移植(HAL库)

freemodbus的官方介绍和下载入口&#xff0c;官方仓库链接&#xff1a;https://github.com/cwalter-at/freemodbus modbus自己实现的话往往是有选择的支持几条指令&#xff0c;像断帧和异常处理可能是完全不处理的&#xff0c;用freemodbus实现的话要简单很多&#xff0c;可移植…

Linux Lha命令教程:学习如何管理.lzh文件(附案例详解和注意事项)

Linux lha命令介绍 lha&#xff08;LHarc&#xff09; 是一种用于文件压缩和解压缩的工具&#xff0c;广泛应用在多个系统中&#xff0c;包括 Windows 和 Linux。利用此命令&#xff0c;用户可以方便地管理 .lzh 或 .lha 文件。它支持多种压缩算法&#xff0c;包括LZH、LZ5、L…

【leetcode100-033】【链表】排序链表

【题干】 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 【思路】 递归版归并法链表版&#xff5e;没什么特别好说的&#xff08;非递归版归并也是可以哒&#xff0c;但是马上要考试了今天懒得写了&#xff01;打个flag在这里也许哪天想起来…

linux线程重启

以下是获取线程id和重启指定线程的示例代码&#xff1a; #include <stdio.h> #include <pthread.h>// 线程函数&#xff0c;用来打印线程ID void *print_thread_id(void *arg) {printf("Thread ID: %lu\n", pthread_self());return NULL; }int main() {…

PR如何在一个视频里添加多个画面?多窗口画中画PR模板视频素材

Premiere Pro 2021模板&#xff0c;多窗口布局&#xff0c;多画面组合&#xff0c;小窗口视频&#xff0c;画中画视频效果制作素材PR模板mogrt文件。 4K、HD可调整到任何分辨率。 100多窗口布局样式。 来自PR模板网&#xff1a;https://prmuban.com/37059.html

深入了解pnpm:一种高效的包管理工具

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…