『JavaScript』全面掌握JavaScript数组的操作、方法与高级技巧

news2025/3/12 20:09:26

请添加图片描述

请添加图片描述
📣读完这篇文章里你能收获到

  • 学习JavaScript中数组的基本操作
  • 掌握JavaScript数组的多种内置方法
  • 了解JavaScript中的数组扩展运算符、Array.from()和Array.of()等实用技巧
  • 熟悉如何在JavaScript中使用数组方法进行数据处理

请添加图片描述

文章目录

  • 一、基本操作
    • 1. 创建数组
    • 2. 访问和修改元素
    • 3. 数组长度
  • 二、数组方法
  • 三、实用技巧
    • 1. 数组展开运算符
    • 2. Array.from()和Array.of()

在JavaScript中,数组是一种特殊类型的对象,用于存储有序的数据集合。本文将详细介绍JavaScript中的数组技术,包括基本操作、方法和一些实用技巧。

一、基本操作

1. 创建数组

在JavaScript中,可以使用以下方式创建数组:

let arr1 = [1, 2, 3, 4, 5];
let arr2 = new Array(10); // 创建一个长度为10的空数组

2. 访问和修改元素

可以使用方括号[]来访问和修改数组中的元素:

let arr = [1, 2, 3, 4, 5];

console.log(arr[0]); // 输出:1
arr[0] = "Hello";
console.log(arr); // 输出:["Hello", 2, 3, 4, 5]

3. 数组长度

使用length属性可以获得数组的长度:

let arr = [1, 2, 3, 4, 5];
console.log(arr.length); // 输出:5

注意:修改length属性可以改变数组的长度,但需要注意这可能会导致数据丢失。

二、数组方法

JavaScript为数组提供了一系列内置方法,以下是一些常用的方法:

方法名描述
push(element1, …, elementN)将一个或多个元素添加到数组的末尾,并返回新的长度
pop()删除并返回数组的最后一个元素
shift()删除并返回数组的第一个元素
unshift(element1, …, elementN)在数组的开头添加一个或多个元素,并返回新的长度
splice(start[, deleteCount, item1, …, itemX])删除元素并/或添加新元素到数组中,并返回被删除的元素
slice(start[, end])提取数组的一部分,并返回新的数组
concat(array2, …, arrayN)连接一个或多个数组,并返回新的数组
join([separator])将数组转换为字符串,元素由指定的分隔符连接
reverse()颠倒数组中元素的顺序
sort([compareFunction])对数组元素进行排序,默认升序
indexOf(searchElement[, fromIndex])返回指定元素首次出现的索引,未找到则返回-1
lastIndexOf(searchElement[, fromIndex])返回指定元素最后一次出现的索引,未找到则返回-1
includes(searchElement[, fromIndex])检查数组是否包含指定的元素,返回布尔值
forEach(callback[, thisArg])对数组中的每个元素执行一次提供的函数
map(callback[, thisArg])创建一个新数组,其结果是调用提供的函数在每个元素上的结果
filter(callback[, thisArg])创建一个新数组,其中包含通过测试的所有元素
reduce(callback[, initialValue])对数组中的每个元素执行一个由你提供的reducer函数(升序执行),将其结果汇总为单个返回值
reduceRight(callback[, initialValue])对数组中的每个元素执行一个由你提供的reducer函数(降序执行),将其结果汇总为单个返回值

以下是一些示例代码:

let arr = [1, 2, 3, 4, 5];

arr.push(6);
console.log(arr); // 输出:[1, 2, 3, 4, 5, 6]

let lastElement = arr.pop();
console.log(lastElement); // 输出:6
console.log(arr); // 输出:[1, 2, 3, 4, 5]

arr.unshift("First");
console.log(arr); // 输出:["First", 1, 2, 3, 4, 5]

let removedElements = arr.splice(2, 1, "Two", "Three");
console.log(removedElements); // 输出:[3]
console.log(arr); // 输出:["First", 1, "Two", "Three", 4, 5]

let slicedArr = arr.slice(1, 4);
console.log(slicedArr); // 输出:[1, "Two", "Three"]

let joinedStr = arr.join(", ");
console.log(joinedStr); // 输出:"First, 1, Two, Three, 4, 5"

arr.reverse();
console.log(arr); // 输出:[5, 4, "Three", "Two", 1, "First"]

arr.sort((a, b) => a - b);
console.log(arr); // 输出:[1, "First", "Three", "Two", 4, 5]

console.log(arr.indexOf(4)); // 输出:4
console.log(arr.includes("Two")); // 输出:true

arr.forEach((item, index) => console.log(`${index}: ${item}`));
// 输出:
// 0: 1
// 1: First
// 2: Three
// 3: Two
// 4: 4
// 5: 5

let mappedArr = arr.map(item => item * 2);
console.log(mappedArr); // 输出:[2, "First", "Three", "Two", 8, 10]

let filteredArr = arr.filter(item => typeof item === "number");
console.log(filteredArr); // 输出:[1, 4, 5]

let reducedValue = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(reducedValue); // 输出:25

三、实用技巧

1. 数组展开运算符

在ES6中引入了数组展开运算符(Spread syntax),它允许将一个数组或可迭代对象的内容扩展到其他数组或函数调用中。

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];

let combinedArr = [...arr1, ...arr2]; // 输出:[1, 2, 3, 4, 5, 6]

2. Array.from()和Array.of()

Array.from()和Array.of()是两个用于创建数组的静态方法。

let arrFrom = Array.from("Hello"); // 输出:["H", "e", "l", "l", "o"]
let arrOf = Array.of(1, 2, 3); // 输出:[1, 2, 3]

请添加图片描述

请添加图片描述

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

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

相关文章

Python 高级(三):多线程 threading

大家好,我是水滴~~ 在Python中,threading模块提供了一种简单而强大的方式来进行多线程编程。多线程可以同时执行多个任务,使程序能够更有效地利用计算资源。本教程将介绍threading模块的基本概念、用法和一些常见的多线程编程模式。 文章中…

HTML---利用CSS3制作网页动画

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 会使用transfoem 2D 变形设置网页元元素会使用transition制作过渡动画会使用animation制作网页动画 一.CSS3概述 CSS3是HTML的样式语言,它用于描述和控制HTML文档的外观和…

Java AQS 核心数据结构-CLH 锁及优化

Java AQS 核心数据结构-CLH 锁 什么是CLH锁 CLH 锁是对自旋锁的一种改进,有效的解决了以上的两个缺点。 第一个是锁饥饿问题。在锁竞争激烈的情况下,可能存在一个线程一直被其他线程”插队“而一直获取不到锁的情况。第二是性能问题。在实际的多处理上…

6.1810: Operating System Engineering 2023 <Lab5: cow: Copy-on-write fork>

一、本节任务 二、要点 2.1 设备驱动(device driver) memory-mapped I/O:设备拥有一个地址范围,软件可以使用 ld/st 指令来访存从而读写设备的寄存器。平台设计者决定设备在物理内存空间中的位置。 内核如何识别设备中断&#…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题:Service 是否通过 DNS 工作?10. 总结1、POD启动异常、部分节点无法启动p…

2024年度AI大模型趋势解读

文章目录 2024年度AI大模型趋势解读写在前面大模型时代大模型未来发展趋势总结 2024年度AI大模型趋势解读 写在前面 大模型指具备超大规模预训练语料、拥有超千亿规模模型参数的深度学习模型。由美国开放人工智能研究中心(OpenAI)研发、基于大模型的人工…

python 面试题第一弹

1. 如何理解Python中的深浅拷贝 浅拷贝(Shallow Copy)创建一个新的对象,该对象的内容是原始对象的引用。这意味着新对象与原始对象共享相同的内存地址,因此对于可变对象来说,如果修改了其中一个对象,另一个…

31. Ajax

简介 AJAX 是 Asynchronous JavaScript And XML 的简称。直译为,异步的JS和XML。AJAX的实际意义是,不发生页面跳转、异步载入内容并改写页面内容的技术。AJAX也可以简单的理解为通过JS向服务器发送请求。 AJAX这门技术很早就被发明,但是直到…

Python 新规范 pyproject.toml 完全解析

多谢:thank Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案。 该规范目前已经在很多开源项目中得以支持: Django 这个 Python 生态的顶级项目在 5 个月之前开始使用 pyproject.tomlPytest 这个 Python 生态测试框架的领头羊在 4 个…

二、基于图像和结构化数据多模态融合的回归预测网络【框图讲解+源码】

整理读研期间做的项目与日常小实验 本篇未完待续…代码部分整理后补充 0. 背景 实验室有一些材料的SEM(扫描电镜)图像、也有对应的组分信息(结构化数据,包含类别特征和连续的数值特征),以及对应的力学性能…

c++学习笔记(14)-类的对象占用内存

1、类的对象占用内存大小 很多C书籍中都介绍过,一个class对象需要占用多大的内存空间。最权威的结论是: 1. 非静态成员变量总和。 2. 加上编译器为了CPU计算,作出的数据对齐处理。 3. 加上为了支持虚函数,产生的额外负担。 1.1、…

【自然语言处理】扩展命名实体识别器(NER)以使用spaCy标记新实体

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

用C/C++实现MSML协议栈的详细介绍

一、MSML协议简介 MSML(Media Server Markup Language)是一种基于XML的标记语言,用于控制媒体服务器。它是媒体服务器控制协议的一种,允许第三方应用与媒体服务器进行交互,实现对媒体流的创建、修改和释放等操作。MSM…

Elasticsearch可视化平台Kibana [ES系列] - 第498篇

历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 全…

W3 Total Cache Pro v2.6.0 – WordPress 插件

W3 Total Cache Pro v2.6.0:优化WordPress性能的专业解决方案 一、引言 在数字化的世界中,网站性能对于用户体验和搜索引擎排名至关重要。WordPress作为全球最受欢迎的内容管理系统之一,提供了大量的插件来帮助网站所有者优化其性能。其中&a…

数字人平台哪家好!

数字人是指利用人工智能技术,通过计算机生成或模拟人类的外貌、声音、动作和表情等特征,从而创造出具有一定个性和情感的虚拟角色。数字人可以用于于娱乐、教育、营销、服务等多个领域,为用户提供更加丰富和互动的体验。 目前,市场…

『JavaScript』深入理解JavaScript字符串的基础操作与内置方法

📣读完这篇文章里你能收获到 学习了JavaScript中字符串的基本操作掌握了JavaScript字符串的多种内置方法了解了JavaScript中的模板字符串和插值表达式熟悉了如何在JavaScript中使用正则表达式与字符串方法结合 文章目录 一、基本操作1. 创建字符串2. 字符串长度3. …

Java架构师系统架构设计实践

目录 1 导语2 架构设计实践本章概述3 架构设计要素概述和规划4 架构设计模式5 架构设计输入6 架构设计输出7 架构设计要素总结 想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 Java架构师在进行系统架构设计时,需要综合考虑多个方面&#…

洛谷 P2367 语文成绩 刷题笔记

P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 差分 令a[i]为b[i]数组的前缀和 a[n]b[1]b[2]b[3].....b[n]; a[n-1]b[1]b[2]b[3].....b[n-1]; 构造差分数组 b[i]a[i]-a[i-1]; 有什么好处 当我们想对a[l]--a[r]范围内所有数据加上一个数x 不必循环 for(i…

C++力扣题目150--逆波兰表达式求值

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个…