程序员必看的数组详解!

article/2025/10/16 6:09:35

数组

什么是数组?

数组是一组数据有序的集合。数组它是属于复合数据类型。它至少可以存储一个值(它可以存储很多很多值)。

例如我们生活中的仓库,可以存放很多我们需要的工具或物品

 

为什么要使用数组?

因为在我们工作中 有很多数据是有关联的 我们要表示的时候想把这些数据用一个”东西”来存储,这个时候就可以用到数组! 我们做开发的时候,需要将一个或多个数组进行存储的时候,可以考虑使用数组;

定义数组 创建数组

使用[]来定义数组

第一种方式:先定义一个空数组 再往这个空数组中添加数组元素

 

第二种方式:在定义数组时候直接添加数组元素

 

 

 

 

使用new关键字和Array()方法来定义数组

第一种方式:创建一个空数组 new Array()

第二种:创建一个数组 要指定数组的长度 new Array(length)

第三种:创建一个数组 并指定数组元素 new Array(元素1,元素1,元素N);

注意:

 

数组的相关概念

数组元素

指数组中的每一个数据!我们就把它们称之为数组元素,例如:

var arr=[“张三”,”李四”,”王五”];

数组下标(索引)

每一个数组元素都对应着一个数组下标 数组的下标是从0开始 第一个数组元素的下标是0,第二个数组元素的下标为1 第三个数组元素的下标为2 依此类推!

下标的主要作用就是为了方便找到数组中的元素!找到我们存在数组中的数据

如何访问数组里面的某一个元素

格式:

数组变量名[下标]

 

数组的长度

数组的长度:数组中元素的总个数

其实数组的变量名是一个数组对象

如何去计算数组的长度:

数组变量名.length

在JS中 数组对象下面有一个length的属性 这个属性可以得到数组的长度

数组的长度与最大下标之间有什么关系 ?

最大下标=数组的长度-1

<script>

//使用一个变量来保存所有同学的姓名

//数组在其它的程序语言里面是是数组类型 但是在JS里面没有数组类型 它是对象类型

//数组是一组数组的有序的集体 每个数据之间使用逗号分开 为了表示它是数组 要在这些数据的外面使用[]括起来

//数组是一组数据有序的集合 有顺序

//数组的长度 ----->数组里面的元素的个数

//语法:

//数组里面的元素它的类型可以是任意类型 没有限制

var arr = ["张三","李四","王五"

,18,true,false];

//数组的下标的目的是为了让我们的找到数组里面的元素

//格式: 数组的变量名[指定的下标值]

console.log(arr);

console.log(arr[2]);

//获取数组的长度 数组里面元素的总个数 JS仿照JAVA

console.log(arr.length);

//如果的最大下标与长度之间的关系

//数组里面最大的下标 = 数组的长度-1

var length = arr.length; //获取当前数组的长度将它赋值给变量length

console.log(arr[length-1]);

</script>

数组的遍历

什么是数组的遍历?

操作数组中的每一个数组元素

使用for循环来遍历数组

因为数组的下标是连续的,数组的下标是从0开始。

我们也可以得到数组的长度。

格式:

for(var i=0;i<数组的长度;i++){

数组变量名[i]

}

注意:条件表达式的写法

  • i<数组的长度
  • i<=数组的长度-1 // 数组最大下标

案例:

求数组里面元素的和

var arr=[10,20,3,22,90];

// 定义一个变量,用于临时统计所有元素的和

var sum=0;

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

// sum=sum+arr[i];

sum+=arr[i];

}

console.log(sum);

求数组里面元素是奇数的和

 

求数组中的最大值

 

使用数组的方式来实现输出今天星期几?

 

使用for..in语句来遍历数组

for..in它本身是用来遍历对象的,因为数组也是属于对象的一种,那么也可以使用for..in语句来遍历数组

格式:

for(var 变量名 in数组变量名){

数组变量名[变量名]

}

<script>

//求数组中元素是偶数得到其和

var arr = [10,20,18,19,16,22,33,11];

/*

//声明变量 相当于数组里面的下标值

for(声明变量 in 要遍历数组名){

//代码块

}

*/

var sum = 0; //用于存储偶数的和

for(var index in arr){

//判断数组里面的元素是不是偶数

if(arr[index] % 2 == 0){

sum += arr[index];

}

}

document.write("偶数的和:"+sum);

</script>

 

注意:

一般情况下我们都会使用for循环来遍历数组,因为使用for循环遍历数组非常直观。

多维数组

JavaScript它本身是没有多维数组的概念,因为在JavaScript中 数组元素的数据类型可以是任意数据类型。假设在一个数组中有一些数组元素的的类型还是数组 这个时候我们就将它称之为多维数组!

一维数组

简单来说,一个数组内所有的元素的数据类型的都不是数组类型,就是一维数组。

多维数组

超过一维都是可以叫多维,多维数组指的是一个数组中的元素又是一个数组。

如何访问二维数组的里面的数组元素呢?

格式:

数组变量名[一维数组的下标][二维数组的下标]

<script>

//在一个数组里面出现了数组 称之为多维数组

//想保存班上所有同学的个人信息 是否可以将它们放在一个变量里面

//在一个数组里面没有数组类型

var arr1 = ["刘德华",18,"男"];

var arr2 = ["张学友",18,"男"];

var arr3 = ["林志玲",43,"女"];

//多维数组 在一个数组里面嵌套数组

var moreArr = [

["刘德华",18,"男"], //0

["张学友",18,"男"], // 1

["林志玲",43,"女"] //2

];

//在打印数组 最好使用console.log来打印

console.log(moreArr);

console.log(moreArr[0][0]);

console.log(moreArr[2][0])

</script>


http://chatgpt.dhexx.cn/article/kXMhcq6v.shtml

相关文章

JavaScript二维数组和函数

一、二维数组 1、什么是二维数组&#xff1f; 通过两个下标&#xff08;索引&#xff09;来确定一个元素。二维数组可以理解为数组的数组。二维数组组织为矩阵&#xff0c;可以表示为行和列的集合。 2、创建方式 2.1、通过new Array&#xff08;&#xff09;创建 2.2、通过…

JavaScript之二维数组

JavaScript本身只支持一维数组&#xff0c;不支持直接定义二维数组&#xff0c;但是我们可以间接地实现二维数组 将一维数组的每个元素又定义为一个数组&#xff0c;即为数组中的元素也是数组&#xff0c;就是二维数组 <!DOCTYPE html> <html lang"en">…

Linux 信号signal\sigaction

转发&#xff1a;作者&#xff0c;故事狗 https://www.jianshu.com/p/f445bfeea40a Linux 信号signal 对于 Linux来说&#xff0c;实际信号是软中断&#xff0c;许多重要的程序都需要处理信号。信号&#xff0c;为 Linux 提供了一种处理异步事件的方法。比如&#xff0c;终端…

linux下sigaction函数,Linux sigaction函数 sa_flags的值

开始对sa_flags有疑问&#xff0c;网上搜到都是这一个程序&#xff0c;就复制来说事&#xff1a; 代码&#xff1a; 1 #include 2 #include 3 #include 4 #include 5 6 void show_handler (int sig) 7 { 8 printf ("i got signal %d\n",sig); 9 …

Linux signal、sigaction的使用总结

目录 一、什么是信号 二、信号的种类 三、信号的处理 —— signal()函数 四、信号处理 —— sigaction()函数&#xff08;扑获信号&#xff09; 五、扑获信号示例 一、什么是信号 信号是UNIX和Linux系统响应某些条件而产生的一个事件&#xff0c;接收到该信号的进程会相应地采取…

sigaction 函数

今天查一个问题&#xff0c;SIGWINCH的处理函数一直不执行&#xff0c;耽搁了不少时间&#xff0c;最后发现是另外一个地方也设置了&#xff0c;处理函数是另外的。。。。 顺便记录下使用例子&#xff1a; 使用 sigaction 函数&#xff1a; signal 函数的使用方法简单&#xf…

信号、signal 函数、sigaction 函数

文章目录 1.信号的基本概念2.利用 kill 命令发送信号3.信号处理的相关动作4.信号与 signal 函数4.1 signal 函数示例一4.2 signal 函数示例二 5.利用 sigaction 函数进行信号处理6.利用信号处理技术消灭僵尸进程 1.信号的基本概念 发送信号是进程之间常用的通信手段。信号用来…

linux sigaction详解

参看文档&#xff1a; https://blog.csdn.net/weixin_43743847/article/details/90299204https://blog.csdn.net/u010150046/article/details/77344438https://bbs.csdn.net/topics/370255407 一&#xff1a;函数原型介绍 int sigaction(int signum, const struct sigaction …

sigaction函数

#include <signal.h> int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact); //The sigaction() system call is used to change the action taken by a process on receipt of a specific signal. sigaction()系统调用用于改变进程在接收…

c语言sigaction,c语言信号处理sigaction

c语言信号处理sigaction (2011-04-18 23:45:19) 标签: c语言 信号处理 sigaction sighup it 分类: c 信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄…

linux中sigaction函数详解

一、函数原型&#xff1a;sigaction函数的功能是检查或修改与指定信号相关联的处理动作&#xff08;可同时两种操作&#xff09; int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);signum参数指出要捕获的信号类型&#xff0c;act参数指定新…

Qt线程QThread详解

目录 前言1.QThread介绍2.QThread示例一3.QThread示例二4.线程同步 前言 在程序中使用线程可以提高程序的性能、并发性、响应性和稳定性&#xff0c;使得程序设计更加灵活和简单。但是&#xff0c;线程编程也有一些挑战&#xff0c;如线程安全性和死锁等问题需要格外注意。我们…

PyQT5 多线程 QThread

PyQT5 多线程 在常规的界面软件中&#xff0c;需要将UI线程和工作线程加以区分&#xff0c;主要原因是某些工作线程很复杂且耗时&#xff0c;比如下载某个文件或者长时间的计算&#xff0c;当执行这些进程时&#xff0c;UI主进程会被阻塞&#xff0c;界面会出现未响应的状态&a…

QThread之moveToThread用法

一、怎么用 使用一个QObject作为Worker&#xff0c;并moveToThread到线程上&#xff0c;那么这个QObject生存在此线程上&#xff0c;其信号会在此线程上发射&#xff0c;其槽函数在此线程上执行。 意味着什么&#xff0c;意味着多线程操作时&#xff0c;若通过信号槽方式&…

Qt 多线程编程的 QThread 类 (详细)

本文结构如下&#xff1a; 概述优雅的开始我们的多线程编程之旅 我们该把耗时代码放在哪里&#xff1f;再谈 moveToThread()启动线程前的准备工作 开多少个线程比较合适&#xff1f;设置栈大小启动线程/退出线程 启动线程优雅的退出线程操作运行中的线程 获取状态 运行状态线程…

QT之多线程(QThread)的简单使用

一、线程简述 线程&#xff08;thread&#xff09;是操作系统能够进行运算调度的最小单位。一条线程指的是进程中一个单一顺序的控制流&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位。一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务…

Qt 之 QThread(深入理解)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 为了让程序尽快响应用户操作,在开发应用程序时经常会使用到线程。对于耗时操作如果不使用线程,UI界面将会长时间处于停滞状态,这种情况是用户非常不愿意看到的,我们可以用线程来解决这个问题。 前面,已…

Qt线程:QThread

一、描述 一个QThread对象管理程序内的一个线程&#xff0c;QThreads在run()中开始执行。默认情况下&#xff0c;run()通过调用exec()启动事件循环&#xff0c;并在线程内部运行一个Qt事件循环。 可以通过使用 QObject::moveToThread() 将对象移动到线程来使用它们。 class W…

PyQt中的多线程QThread示例

PyQt中的多线程 一、PyQt中的多线程二、创建线程2.1 设计ui界面2.2 设计工作线程2.3 主程序设计 三、运行结果示例 一、PyQt中的多线程 传统的图形用户界面应用程序都只有一个执行线程&#xff0c;并且一次只执行一个操作。如果用户从用户界面中调用一个比较耗时的操作&#x…

【Qt】Qt的线程(两种QThread类的详细使用方式)

Qt提供QThread类以进行多任务处理。与多任务处理一样&#xff0c;Qt提供的线程可以做到单个线程做不到的事情。例如&#xff0c;网络应用程序中&#xff0c;可以使用线程处理多种连接器。 QThread继承自QObject类&#xff0c;且提供QMutex类以实现同步。线程和进程共享全局变量…