TypeScript:数组常用方法

该文章已生成可运行项目,

在TypeScript中,数组是一种常用的数据结构,用于存储有序的元素集合。它继承了JavaScript中的数组功能,并提供了静态类型的支持。

数组的基本操作方法

创建数组
  1. 显式声明类型
let numbers: number[] = [1, 2, 3, 4];
let strings: string[] = ['apple', 'banana', 'cherry'];
  1. 泛型语法
let mixedArray: Array<number | string> = [1, 'apple', 2, 'banana'];

数组的常用方法分类

操作类别常用方法
添加与删除push, pop, unshift, shift, splice
查找与判断indexOf, lastIndexOf, includes, find, findIndex
遍历与转换forEach, map, filter, reduce
排序与反转sort, reverse
合并与分割concat, slice, join, split

1. 添加与删除操作

pushpop
  • push:向数组末尾添加元素,并返回新长度。
  • pop:移除数组末尾的元素,并返回被移除的元素。
let fruits: string[] = ['apple', 'banana'];
fruits.push('cherry'); // ['apple', 'banana', 'cherry']
let removedFruit = fruits.pop(); // ['apple', 'banana'], 返回值: 'cherry'
unshiftshift
  • unshift:向数组开头添加元素,并返回新长度。
  • shift:移除数组开头的元素,并返回被移除的元素。
let numbers: number[] = [2, 3, 4];
numbers.unshift(1); // [1, 2, 3, 4]
let firstNumber = numbers.shift(); // [2, 3, 4], 返回值: 1
splice
  • 用于在数组中添加、删除或替换元素。
let colors: string[] = ['red', 'green', 'blue'];
colors.splice(1, 1, 'yellow'); // ['red', 'yellow', 'blue']
colors.splice(2, 0, 'purple'); // ['red', 'yellow', 'purple', 'blue']

2. 查找与判断操作

indexOflastIndexOf
  • indexOf:查找元素的第一个匹配索引。
  • lastIndexOf:查找元素的最后一个匹配索引。
let numbers: number[] = [1, 2, 3, 2, 4];
numbers.indexOf(2); // 返回: 1
numbers.lastIndexOf(2); // 返回: 3
includes
  • 判断数组是否包含某个元素,返回布尔值。
let items: string[] = ['apple', 'banana', 'cherry'];
items.includes('banana'); // 返回: true
items.includes('grape'); // 返回: false
findfindIndex
  • find:查找第一个满足条件的元素。
  • findIndex:查找第一个满足条件的元素索引。
let users = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
let user = users.find(u => u.id === 2); // 返回: { id: 2, name: 'Bob' }
let userIndex = users.findIndex(u => u.name === 'Alice'); // 返回: 0

3. 遍历与转换操作

forEach
  • 遍历数组,执行回调函数(不返回新数组)。
let names: string[] = ['Alice', 'Bob', 'Charlie'];
names.forEach(name => console.log(name));
map
  • 遍历数组,生成一个新数组。
let numbers: number[] = [1, 2, 3];
let squared = numbers.map(num => num ** 2); // [1, 4, 9]
filter
  • 返回满足条件的元素组成的新数组。
let numbers: number[] = [1, 2, 3, 4];
let evens = numbers.filter(num => num % 2 === 0); // [2, 4]
reduce
  • 为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果。
let numbers: number[] = [1, 2, 3, 4];
let sum = numbers.reduce((acc, num) => acc + num); // 返回: 10

4. 排序与反转操作

sort
  • 按指定规则排序数组。
let numbers: number[] = [4, 1, 3, 2];
numbers.sort((a, b) => a - b); // [1, 2, 3, 4]
reverse
  • 反转数组顺序。
let numbers: number[] = [1, 2, 3];
numbers.reverse(); // [3, 2, 1]

5. 合并与分割操作

concat
  • 合并两个或多个数组,生成新数组。
let arr1 = [1, 2];
let arr2 = [3, 4];
let result = arr1.concat(arr2); // [1, 2, 3, 4]
slice
  • 截取数组的一部分,生成新数组。
let numbers: number[] = [1, 2, 3, 4];
let sliced = numbers.slice(1, 3); // [2, 3]
join
  • 将数组元素拼接成字符串。
let words: string[] = ['Hello', 'World'];
let sentence = words.join(' '); // 'Hello World'

凡是过去,皆为序章;凡是未来,皆有可期。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值