JavaScript 数据类型 - 数组

news/2025/3/19 22:49:55/文章来源:https://www.cnblogs.com/kyle-7Qc/p/18782090

JavaScript 数组

一、数组基础

  • 定义:数组是一组按顺序排列的集合,每个值称为元素。JavaScript 的数组可以包含任意数据类型。

  • 创建方法

    • 使用数组字面量(推荐):let arr = [1, 2, 3.14, 'Hello', null, true];
    • 使用 Array() 构造函数:let arr = new Array(1, 2, 3);
  • 访问元素:通过索引访问,索引从 0 开始。例如:

    let arr = [1, 2, 3.14, 'Hello', null, true];
    console.log(arr[0]); // 输出 1
    console.log(arr[5]); // 输出 true
    

二、数组的常用属性和方法

  • length 属性:获取数组的长度。

    let arr = [1, 2, 3.14, 'Hello', null, true];
    console.log(arr.length); // 输出 6
    
  • 修改数组大小

    • 直接修改 length 属性可以改变数组大小,但不推荐直接操作。

    • 通过索引赋值会自动调整数组大小。

  • 元素修改:通过索引直接赋值修改数组元素。

    let arr = ['A', 'B', 'C'];
    arr[1] = 99;
    console.log(arr); // 输出 ['A', 99, 'C']
    

三、数组操作方法

  1. indexOf():查找元素的索引,未找到返回 -1。

    let arr = ['a', 1, '30', 5];
    console.log(arr.indexOf(5)); // 输出 3
    console.log(arr.indexOf('a')); // 输出 0
    console.log(arr.indexOf(2)); // 输出 -1
    
  2. slice():截取数组的一部分,返回新数组。

    let arr = [1, 2, 3, 4, 'a'];
    console.log(arr.slice(1)); // 输出 [2, 3, 4, 'a']
    console.log(arr.slice(0, 3)); // 输出 [1, 2, 3]
    
  3. push():向数组末尾添加元素,返回新长度。

    let arr = [1, 2, 3, 4, 'a'];
    console.log(arr.push(5, 6)); // 输出 7
    console.log(arr); // 输出 [1, 2, 3, 4, 'a', 5, 6]
    
  4. pop():移除数组最后一个元素,返回被移除的元素。

    let arr = [1, 2, 3, 4, 'a'];
    arr.pop();
    console.log(arr); // 输出 [1, 2, 3, 4]
    
  5. unshift():向数组头部添加元素。

    let arr = [1, 2, 'A'];
    arr.unshift(0, 5);
    console.log(arr); // 输出 [0, 5, 1, 2, 'A']
    
  6. shift():移除数组第一个元素。

    let arr = [1, 2, 'A'];
    arr.shift();
    console.log(arr); // 输出 [2, 'A']
    
  7. sort():对数组进行排序,默认按 ASCII 码排序,可自定义排序规则。

    let arr = ['A', 1, 'a', 2, 'B'];
    arr.sort();
    console.log(arr); // 输出 [1, 2, 'A', 'B', 'a']
    
  8. reverse():反转数组。

    let arr = ['one', 'two', 'three'];
    arr.reverse();
    console.log(arr); // 输出 ['three', 'two', 'one']
    
  9. splice():从指定索引开始删除若干元素,再添加若干元素。

    let arr = ['HuaWei', 'Xiaomi', 'OnePlus', 'Apple'];
    arr.splice(3, 1, 'vivo', 'oppo');
    console.log(arr); // 输出 ['HuaWei', 'Xiaomi', 'OnePlus', 'vivo', 'oppo']
    
  10. concat():连接多个数组,返回新数组。

    let arr1 = ['a', 'b'];
    let arr2 = arr1.concat(['c', 'd']);
    console.log(arr2); // 输出 ['a', 'b', 'c', 'd']
    
  11. join():将数组元素用指定字符串连接,返回新字符串。

    let arr = ['A', 'B', 'C', 1, 2, 3];
    console.log(arr.join('-')); // 输出 A-B-C-1-2-3
    

四、多维数组

  • 数组的元素可以是另一个数组,形成多维数组。

    let arr = [[1, 2, 3], [400, 500, 600], '-'];
    console.log(arr[1][1]); // 输出 500
    

五、练习

  • 在新生欢迎会上,你已经拿到了新同学的名单,请排序后显示:欢迎XXX,XXX,XXX和XXX同学!:

  • arr = ['小明', '小红', '大军', '阿黄'];

    let arr = ['小明', '小红', '大军', '阿黄'];
    arr.sort();
    let z = arr.pop();
    let str = `欢迎${arr.join(',')}和${z}同学!`;
    console.log(str); // 输出 欢迎大军,小明,小红和阿黄同学!
    

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

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

相关文章

idea如何激活到2099年

前言 最近发现idea如何激活使用的问题、 网络上各种都是骗关注加各种公众号的最后也没有解决问题,下面分享一下我的激活方法是如何激活到2099年。目前适用于idea的所有版本。我以最新的ideaIU-2024.3为例。 一去官网上下载idea 官网下载地址:https://www.jetbrains.com.cn/id…

202108032324 - kafka的生产流程

由上图可以看出:KafkaProducer有两个基本线程: 主线程: 负责消息创建,拦截器,序列化器,分区器等操作,并将消息追加到消息收集器 RecoderAccumulator中; 消息收集器RecoderAccumulator为每个分区都维护了一个Deque<ProducerBatch> 类型的双端队列。 ProducerBatch…

Cython二进制逆向系列(三)运算符

在这篇文章里,我们会讨论Cython是如何处理运算符的(数学运算符、位运算符、in/not in 运算符、 ==运算符与逻辑运算符)。总的来叔其中大部分是调用虚拟机api来实现的。Cython二进制逆向系列(三)运算符在开始前,先给出本文用到的py源代码 def test1(x, y):# 数学运算符a…

QOJ 9785 Shrooks

曼哈顿距离转切比雪夫距离,对限制的贪心满足,扩宽限制,简化信息首先考虑限制的形式:对于两点 \((x_1, y_1), (x_2, y_2)\),要求 \(|x_1 - x_2| + |y_1 - y_2| \le n\)。 但是这个式子与 \(x_1, x_2, y_1, y_2\) 这 \(4\) 个值都强相关,且这里的绝对值也并不好拆开处理。 …

golang的GC机制

一、垃圾回收 什么是垃圾回收?垃圾回收(GC,garbage collection)是自动内存管理的一种形式,通常由垃圾收集器收集并适时回收或重用不再被对象占用的内存,比如众所周知的Java语言就能很好的支持GC。后起之秀——Go语言也同样支持垃圾回收,它使得Go程序员在编写程序的时候不…

fastjson漏洞复现(fastjson 1.2.47)

原理: Fastjson 的 @type 字段允许反序列化时动态指定类,攻击者可以通过指定带有危险行为的类,并结合 RMI/LDAP 远程加载恶意类,从而实现命令执行。开启vulhub靶场//如何验证是否存在fastjson反序列化漏洞 有json数据传输的地方可能存在 可以尝试使用dnslog带外但是不知道…

基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真

1.课题概述两电机变频调速系统是一个多输入多输出非线性强耦合的控制系统。本课题使用神经网络构造原系统的a阶逆系统,设计线性闭环调节器进行控制,通过matlab对系统进行仿真。对两电机变频调速系统更为精确地实现了张力和速度间的解藕控制。2.系统仿真结果 (完整程序运行后…

使用gradio实现实时语音识别

这里通过gradio来实现实时语音识别,通过上传一个文件,当点击提交后则在右侧输出其相应识别的文字。 实现代码比较简单,如下所示: import gradiodef convert(file_bytes):# 语音识别方法,其中file_bytes是采样率与对应numpy.ndarray实例return recognition_func(file_bytes[1])d…

英语四级跟练计划第一天

前言 今天给英语四级报了名,以我以往英语的水平来看,如果不早早开始复习,绝无通过的可能,走投无路的我只好去向deepseek求助,上一次320分的考生,这一次该付出何等的努力才可以考到425分,如此为我制定了90天的四级复习计划。我相信有很多人和我一样,都被英语四级通过给困…

202107191556 - 层次分析法计算流程

构造矩阵 一致性检验计算最大特征值计算一致性指标CI CI = ( λ - n ) / ( n - 1 )随机一致性指标RI取值计算一致性比率CR计算特征向量列向量归一化 求行和后归一化根据特征向量求最大特征值计算过程

crontab 命令

crontab -l 查看所有任务 crontab -e 编辑任务* * * * * /www/server/php/82/bin/php /www/wwwroot/default/1.php >> /www/wwwroot/default/cron_log.log 2>&1cd /www/wwwroot/www.pk777slots.com/ && php think test在那个目录运行 cd /www/wwwroot/www…