TypeScript 算法手册 【数组基础知识】

文章目录

    • 1. 数组简介
      • 1.1 数组定义
      • 1.2 数组特点
    • 2. 数组的基本操作
      • 2.1 访问元素
      • 2.2 添加元素
      • 2.3 删除元素
      • 2.4 修改元素
      • 2.5 查找元素
    • 3. 数组的常见方法
      • 3.1 数组的创建
      • 3.2 数组的遍历
      • 3.3 数组的映射
      • 3.4 数组的过滤
      • 3.5 数组的归约
      • 3.6 数组的查找
      • 3.7 数组的排序
      • 3.8 数组的反转
      • 3.9 数组的连接
      • 3.10 数组的切片
      • 3.11 数组的填充
      • 3.12 数组的删除
      • 3.13 数组的合并
      • 3.14 数组的过滤
    • 数组的优点
    • 数组的缺点
    • 总结

在这里插入图片描述

1. 数组简介

1.1 数组定义

数组就像是一排整齐的储物柜,每个柜子里都放着相同类型的物品。这些柜子紧挨着排列,每个柜子都有自己的编号(从 0 开始),方便我们快速找到需要的物品。

用 TypeScript 代码表示一个简单的数组:

const array: number[] = [1, 2, 3, 4, 5];

1.2 数组特点

  1. 有序性: 数组中的元素按照顺序排列,可以通过索引访问
  2. 同质性: 数组中的元素必须是相同类型的
  3. 固定大小: 数组的大小在创建时固定,不能动态改变

2. 数组的基本操作

2.1 访问元素

const array: number[] = [1, 2, 3, 4, 5];
const element = array[2]; // 3

2.2 添加元素

const array: number[] = [1, 2, 3, 4, 5];
array.push(6); // [1, 2, 3, 4, 5, 6]

2.3 删除元素

const array: number[] = [1, 2, 3, 4, 5];
array.pop(); // [1, 2, 3, 4]

2.4 修改元素

const array: number[] = [1, 2, 3, 4, 5];
array[2] = 10; // [1, 2, 10, 4, 5]

2.5 查找元素

const array: number[] = [1, 2, 3, 4, 5];
const index = array.indexOf(3); // 2

3. 数组的常见方法

3.1 数组的创建

const array: number[] = [1, 2, 3, 4, 5];

3.2 数组的遍历

const array: number[] = [1, 2, 3, 4, 5];
for (const element of array) {
  console.log(element);
}

3.3 数组的映射

const array: number[] = [1, 2, 3, 4, 5];
const mappedArray = array.map((element) => element * 2); // [2, 4, 6, 8, 10]

3.4 数组的过滤

const array: number[] = [1, 2, 3, 4, 5];
const filteredArray = array.filter((element) => element % 2 === 0); // [2, 4]

3.5 数组的归约

const array: number[] = [1, 2, 3, 4, 5];
const reducedArray = array.reduce((acc, element) => acc + element, 0); // 15

3.6 数组的查找

const array: number[] = [1, 2, 3, 4, 5];
const foundElement = array.find((element) => element === 3); // 3

3.7 数组的排序

const array: number[] = [1, 2, 3, 4, 5];
array.sort((a, b) => a - b); // [1, 2, 3, 4, 5]

3.8 数组的反转

const array: number[] = [1, 2, 3, 4, 5];
array.reverse(); // [5, 4, 3, 2, 1]

3.9 数组的连接

const array1: number[] = [1, 2, 3];
const array2: number[] = [4, 5, 6];
const concatenatedArray = array1.concat(array2); // [1, 2, 3, 4, 5, 6]

3.10 数组的切片

const array: number[] = [1, 2, 3, 4, 5];
const slicedArray = array.slice(1, 4); // [2, 3, 4]

3.11 数组的填充

const array: number[] = [1, 2, 3, 4, 5];
array.fill(0); // [0, 0, 0, 0, 0]

3.12 数组的删除

const array: number[] = [1, 2, 3, 4, 5];
array.splice(2, 1); // [1, 2, 4, 5]

3.13 数组的合并

const array1: number[] = [1, 2, 3];
const array2: number[] = [4, 5, 6];
const mergedArray = [...array1, ...array2]; // [1, 2, 3, 4, 5, 6]

3.14 数组的过滤

const array: number[] = [1, 2, 3, 4, 5];
const filteredArray = array.filter((element) => element % 2 === 0); // [2, 4]

在这里插入图片描述

数组的优点

  1. 数组是有序的,可以通过索引访问元素
  2. 数组是同质的,所有元素必须是相同类型的
  3. 数组的大小是固定的,不能动态改变

数组的缺点

  1. 数组的大小是固定的,不能动态改变

总结

数组是一种非常基础的数据结构,它在很多场景下都非常有用。

喜欢的话就点个赞 ❤️,关注一下吧,有问题也欢迎讨论指教。感谢大家!!!

** 我已更新完的 TypeScript 设计模式 专栏,感兴趣可以关注一下,一起学习交流 **

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习常见术语介绍

文章目录 数据集(Dataset)特征(Feature)标签(Label)训练集(Training Set)测试集(Test Set)验证集(Validation Set)模型(Mo…

什么是文件完整性监控(FIM)

组织经常使用基于文件的系统来组织、存储和管理信息。文件完整性监控(FIM)是一种用于监控和验证文件和系统完整性的技术,识别用户并提醒用户对文件、文件夹和配置进行未经授权或意外的变更是 FIM 的主要目标,有助于保护关键数据和…

【NVIDIA】如何使用nvidia-smi命令管理和监控GPU

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

Golang | Leetcode Golang题解之第436题寻找右区间

题目: 题解: func findRightInterval(intervals [][]int) []int {n : len(intervals)type pair struct{ x, i int }starts : make([]pair, n)ends : make([]pair, n)for i, p : range intervals {starts[i] pair{p[0], i}ends[i] pair{p[1], i}}sort.…

面向人工智能: 对红酒数据集进行分析 (实验四)

由于直接提供截图是不切实际的,我将详细解释如何使用scikit-learn(通常称为sk-learn)自带的红酒数据集进行葡萄酒数据的分析与处理。这包括实验要求的分析、数据的初步分析(完整性和重复性)以及特征之间的关联关系分析…

MATLAB绘图基础9:多变量图形绘制

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 9.多变量图形绘制 9.1 气泡图 气泡图用于展示三个或更多变量变量之间的关系,气泡图的组成要素: 横轴( X {\rm X} X轴):表示数据集中的一个变量&#xff0c…

双端搭建个人博客

1. 准备工作 确保你的两个虚拟机都安装了以下软件: 虚拟机1(Web服务器): Apache2, PHP虚拟机2(数据库服务器): MariaDB2. 安装步骤 虚拟机1(Web服务器) 安装Apache2和PHP 更新系统包列表: sudo apt update安装Apache2: sudo apt install apache2 -y安装PHP及其Apac…

只写CURD后台管理的Java后端要如何提升自己

你是否工作3~5年后,发现日常只做了CURD的简单代码。 你是否每次面试就会头疼,自己写的代码,除了日常CURD简历上毫无亮点可写 抱怨过苦恼过也后悔过,但是站在现在的时间点回想以前,发现有很多事情我们是可以做的更好的。…

Spring之生成Bean

Bean的生命周期:实例化->属性填充->初始化->销毁 核心入口方法:finishBeanFactoryInitialization-->preInstantiateSingletons DefaultListableBeanFactory#preInstantiateSingletons用于实例化非懒加载的bean。 1.preInstantiateSinglet…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-26

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-26 1. LLMs Still Can’t Plan; Can LRMs? A Preliminary Evaluation of OpenAI’s o1 on PlanBench Authors: Karthik Valmeekam, Kaya Stechly, Subbarao Kambhampati LLMs仍然无法规划;LRMs可以…

Mybatis的基本使用

什么是Mybatis? Mybatis是一个简化JDBC的持久层框架,MyBatis是一个半自动化框架,是因为它在SQL执行过程中只提供了基本的SQL执行功能,而没有像Hibernate那样将所有的ORM操作都自动化了。在MyBatis中,需要手动编写SQL语…

【Android】布局优化—include,merge,ViewStub的使用方法

引言 1.重要性 在Android应用开发中,布局是用户界面的基础。一个高效的布局不仅能提升用户体验,还能显著改善应用的性能。随着应用功能的复杂性增加,布局的优化变得尤为重要。优化布局能够减少渲染时间,提高响应速度&#xff0c…

Docker安装consul + go使用consul + consul知识

1. 什么是服务注册和发现 假如这个产品已经在线上运行,有一天运营想搞一场促销活动,那么我们相对应的【用户服务】可能就要新开启三个微服务实例来支撑这场促销活动。而与此同时,作为苦逼程序员的你就只有手动去 API gateway 中添加新增的这…

探索分布式IO模块的介质冗余:赋能工业自动化的稳健之心

在日新月异的工业自动化领域,每一个细微环节的稳定性都直接关系到生产线的效率与安全。随着智能制造的深入发展,分布式IO(Input/Output)模块作为连接现场设备与控制系统的关键桥梁,其重要性日益凸显。我们自主研发的带…

五子棋双人对战项目(3)——匹配模块

一、分析需求 二、约定前后端接口 三、实现游戏大厅页面(前端代码) 四、实现后端代码 五、线程安全问题 六、忙等问题 一、分析需求 需求:多个玩家,在游戏大厅进行匹配,系统会把实力相近的玩家匹配到一起。 要想实…

Redis 简单的消息队列

使用redis 进行简单的队列很容易,不需要使用较为复杂的MQ队列,直接使用redis 进行,不过唯一不足的需要自己构造生产者消费者,这里使用while True的方法进行消费者操作 目录 介绍数据类型StringHash 重要命令消息队列 介绍 key-v…

钉钉H5微应用Springboot+Vue开发分享

文章目录 说明技术路线注意操作步骤思路图 一、创建钉钉应用二、创建java项目三、创建vue项目(或uniapp项目),npm引入sdk的依赖四、拥有公网域名端口。开发环境可以使用(贝锐花生壳等工具)五、打开钉钉开发者平台&…

Selenium与数据库结合:数据爬取与存储的技术实践

目录 一、Selenium与数据库结合的基础概念 1.1 Selenium简介 1.2 数据库简介 1.3 Selenium与数据库结合的优势 二、Selenium爬取数据的基本步骤 2.1 环境准备 2.2 编写爬虫代码 2.3 数据提取 2.4 异常处理 三、数据存储到数据库 3.1 数据库连接 3.2 数据存储 3.3 …

软件设计师——计算机网络

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:软考——软件设计师🏅往期回顾🏆:🌟其他专栏🌟:C语言_秋邱 一、OSI/ RM七层模型(⭐⭐⭐) ​ 层次 名称 主要功…

docker下载mysql时出现Unable to pull mysql:latest (HTTP code 500) server error 问题

报错 Unable to pull mysql:latest (HTTP code 500) server error - Get “https://registry-1.docker.io/v2/”: EOF 解决方法 将VPN开到Global模式 解决啦