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

news2024/12/28 5:32:24

文章目录

    • 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.coloradmin.cn/o/2181599.html

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

相关文章

AI写作赋能数据采集,开启无限可能性

由人工智能 AI 掀起的新一轮科技革命浪潮,正在不断推动社会进步、各行各业升级发展,深刻影响人们的生活方式,引领我们进入一个充满无限可能的新时代。 那么在数据采集方面,人工智能 AI 可以做什么呢? 下面是搜集网络…

开源在线表结构设计工具

Free, simple, and intuitive database design tool and SQL generator. drawDB在线体验 Discord X drawDB DrawDB is a robust and user-friendly database entity relationship (DBER) editor right in your browser. Build diagrams with a few clicks, export sql scri…

若依--文件上传前端

前端 ry的前端文件上传单独写了一个FileUpload.Vue文件。在main.js中进行了全局的注册,可以在页面中直接使用文件上传的组件。全局导入 在main.js中 import 组件名称 from /components/FileUpLoadapp.compoent(组件名称) //全局挂载组件在项目中使用 组件命令 中…

定时器定时中断定时器外部中断

TIM的函数 // 恢复缺省设置 void TIM_DeInit(TIM_TypeDef* TIMx); // 时基单元初始化,第一个参数TIMx选择某个定时器,第二个参数是结构体,包含了配置时基单元的一些参数。 void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDe…

28 Vue3之搭建公司级项目规范

可以看到保存的时候ref这行被提到了最前面的一行 要求内置库放在组件的前面称为auto fix,数组new arry改成了字面量,这就是我们配置的规范 js规范使用的是airbnb规范模块使用的是antfu 组合prettier&eslint airbnb规范: https://github…

《More Effective C++》的学习

引用与指针 没有所谓的null reference reference一定需要代表某个对象,所以C要求reference必须有初值。 QString &s; 使用reference可能比使用pointer更高效。 因为reference一定是有效的,而指针可能为空(需要多加一个判断&#xff0…

Springboot3 + MyBatis-Plus + MySql + Vue + ProTable + TS 实现后台管理商品分类(最新教程附源码)

Springboot3 MyBatis-Plus MySql Uniapp 商品加入购物车功能实现(针对上一篇sku) 1、效果展示2、数据库设计3、后端源码3.1 application.yml 方便 AliOssUtil.java 读取3.2 model 层3.2.1 BaseEntity3.2.1 GoodsType3.2.3 GoodsTypeSonVo3.3 Controll…

论文翻译 | LLaMA-Adapter :具有零初始化注意的语言模型的有效微调

摘要 我们提出了一种轻量级的自适应方法,可以有效地将LLaMA微调为指令遵循模型。lama - adapter采用52K自指导演示,在冻结的LLaMA 7B模型上只引入1.2M可学习参数,在8个A100 gpu上进行微调花费不到一个小时。具体来说,我们采用了一…

Vue3+Antv X6流程图基本使用

安装 antv/X6 npm i antv/x6 <template><div class"homes"><div class"Shang">上</div><div class"Zhong"><div id"container"></div></div><div class"Xia">下<…

wordpress Contact form 7发件人邮箱设置

此教程仅适用于演示站有留言的主题&#xff0c;演示站没有留言的主题&#xff0c;就别往下看了&#xff0c;免费浪费时间。 使用了Contact form 7插件的简站WordPress主题&#xff0c;在有人留言时&#xff0c;就会发邮件到网站的系统邮箱(一般与管理员邮箱为同一个)里。上面显…

Java | Leetcode Java题解之第448题找到所有数组中消失的数字

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n nums.length;for (int num : nums) {int x (num - 1) % n;nums[x] n;}List<Integer> ret new ArrayList<Integer>();for (int i …

传奇外网架设教程带图文解说—Gee引擎

架设前准备工作&#xff1a; ①通过百度网盘下载版本、补丁、客户端和DBC2000。版本解压到D盘&#xff0c;客户端解压到D盘或是E盘&#xff0c;补丁先不解压 ②安装和配置DBC2000&#xff0c;有些版本不一定用的是DBC2000数据库&#xff0c;看引擎默认的数据库是哪个 DBC数据…

【机器学习基础】Transformer学习

Transformer学习 梯度消失FeedForward层激活函数的主要作用是在网络中加入非线性变换 梯度消失 梯度爆炸 FeedForward层 Transformer结构: Transformer结构主要分为两大部分: 一是Encoder层结构:Encoder 的输入由 Input Embedding 和 Positional Embedding 求和输入Multi…

【SpringBoot详细教程】-08-MybatisPlus详细教程以及SpringBoot整合Mybatis-plus【持续更新】

目录 🌲 MyBatis Plus 简介 🌾入门案例 🌾 MP 简介 🌲 MP 的CRUD 🌾 新增 🌾 删除 🌾 修改在进行 🌾 根据ID查询 🌾 查询所有 🌲 分页功能 🌾 设置分页参数 🌾 设置分页拦截器 🌲 优化启动 🌾 取消mbatisPlusBanner 🌾 取消Sprin…

仿真设计|基于51单片机的路口交通灯控制系统仿真

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部内容 资料获取 具体实现功能 &#xff08;1&#xff09;东西向右转和直行绿灯20S&#xff0c;左转红灯&#xff1b;南北向直行和…

若依从redis中获取用户列表

因为若依放入用户的时候&#xff0c;会在减值中添加随机串&#xff0c;所以用户的key会在redis中变成&#xff1a; login_tokens:6af07052-b76d-44dd-a296-1335af03b2a6 这样的样子。 如果用 Set<Object> items redisService.redisTemplate.keys("login_tokens&…

wordpress重置密码的方法

通过phpMyAdmin直接修改数据库&#xff1a; 登录到phpMyAdmin(通常在cPanel中找到)&#xff0c;找到WordPress数据库&#xff0c;进入wp_users表。 找到对应的用户ID行&#xff0c;修改user_pass字段为新的密码值&#xff0c;并保存更改。 比如&#xff0c;把值改为&#xff…

Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错

文章目录 一、问题报错二、ONLY_FULL_GROUP_BY模式2.1、什么是ONLY_FULL_GROUP_BY&#xff1f;2.2、为什么要使用ONLY_FULL_GROUP_BY&#xff1f;2.3、查看sql_mode 三、解决方法3.1、关闭only_full_group_by模式3.1.1、方法一&#xff1a;关闭当前会话中的only_full_group_by3…

电商选品/分析| 亚马逊常见插件爬虫实战之-helium插件

说明 插件爬虫相当于二次爬虫,二次加工信息,因为大部分插件信息也是从正规网上去获取数据,这次列举helium插件爬虫案例,其他插件爬虫也是类似这个方式. 需求 1、⽤⾕歌浏览器&#xff0c;下载chrome extension&#xff1a;“Helium 10 2、登录helium10 3、打开 打开Amazo…

详细阐述matplotlib.pyplot中plot模块的相关用法和参数以及一些画图基础用法(解决图例不完全显示、中文不显示问题等。)

本文章类似于一篇学习笔记&#xff0c;matplotlib.pyplot是一个很实用的图像绘图模块&#xff0c;下面主要针对plot()绘图函数进行系统性的阐述。 目录 关于figure() figure() 的基本使用 plt.figure() 常用参数 figsize 和 dpi facecolor 和 edgecolor 图形的编号和重…