TypeScript 数组详解
什么是数组
数组(Array)是一种数据结构,用来在内存中存储一系列相同类型的数据。在 TypeScript 中,数组可以存储任意类型的值,包括原始类型(如数字、字符串等)和对象类型(如对象、函数等)。
在 TypeScript 中,数组可以通过以下两种方式进行声明:
- 使用
[]
声明数组变量 - 使用
Array<elementType>
声明数组变量
// 使用[]声明数组变量
let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["Alice", "Bob", "Carol"];
// 使用Array<elementType>声明数组变量
let colors: Array<string> = ["red", "green", "blue"];
let values: Array<number> = [10, 20, 30];
访问数组元素
要访问数组中的元素,可以通过下标(索引)来获取。数组的索引从0开始,表示数组中的第一个元素。通过索引可以获取对应位置的元素,并且也可以修改数组中的元素。
let numbers: number[] = [1, 2, 3, 4, 5];
console.log(numbers[0]); // 输出: 1
console.log(numbers[2]); // 输出: 3
numbers[1] = 10;
console.log(numbers); // 输出: [1, 10, 3, 4, 5]
数组的方法
在 TypeScript 中,数组提供了许多实用的方法来操作数组,例如push
、pop
、splice
、slice
等。下面简单介绍几个常用的数组方法:
push
:向数组的末尾添加一个或多个元素,并返回新的长度。pop
:删除数组的最后一个元素,并返回该元素的值。splice
:从数组中添加或删除元素。slice
:返回一个新数组,包含从起始索引到结束索引的所有元素。
let numbers: number[] = [1, 2, 3, 4, 5];
numbers.push(6);
console.log(numbers); // 输出: [1, 2, 3, 4, 5, 6]
let lastNumber = numbers.pop();
console.log(lastNumber); // 输出: 6
console.log(numbers); // 输出: [1, 2, 3, 4, 5]
let removed = numbers.splice(2, 1);
console.log(removed); // 输出: [3]
console.log(numbers); // 输出: [1, 2, 4, 5]
let subArray = numbers.slice(1, 3);
console.log(subArray); // 输出: [2, 4]
迭代数组
对数组进行迭代是非常常见的操作,可以使用循环语句(如for
、while
)、forEach
函数来遍历数组中的元素。
let numbers: number[] = [1, 2, 3, 4, 5];
// 使用for循环
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
// 使用forEach方法
numbers.forEach(function(num) {
console.log(num);
});
// 使用for...of循环
for (let num of numbers) {
console.log(num);
}
多维数组
除了一维数组外, TypeScript 还支持多维数组。多维数组是数组中的元素还是数组的数组。
let matrix: number[][] = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(matrix[0][1]); // 输出: 2
console.log(matrix[1][2]); // 输出: 6
泛型数组
在 TypeScript 中,可以使用泛型来定义数组,使数组可以存储特定类型的值。
let values: Array<number> = [1, 2, 3, 4, 5];
let names: Array<string> = ["Alice", "Bob", "Carol"];
类型推断
在 TypeScript 中,可以省略数组变量的类型声明,编译器会根据初始化的值来推断数组的类型。
let numbers = [1, 2, 3, 4, 5]; // numbers的类型被推断为number[]
let names = ["Alice", "Bob", "Carol"]; // names的类型被推断为string[]
总结
在 TypeScript 中,数组是一种重要的数据结构,用来存储一系列相同类型的值。通过本文的介绍,你应该了解了如何声明数组、访问数组元素、使用数组方法、迭代数组、多维数组、泛型数组和类型推断等内容。