TypeScript 数组
数组是用户定义的数据类型。数组是相似类型元素的同质集合,这些元素具有连续的内存位置,并且可以存储不同数据类型的多个值。
数组是一种数据结构,它存储相似数据类型的元素,也将其视为对象。一旦声明了它的大小,我们只能存储一组固定的元素并且不能扩展它的大小。
该数组遵循基于索引的存储,即)数组的第一个元素存储在索引 0 或索引“i”处,其余元素存储在位置“i+1”处。
数组的特征
- 相同数据类型的元素存储在数组中。
- 数组元素总是存储在连续的内存位置。
- 二维数组元素的存储在连续的内存位置中逐行排列。
- 地址的起始元素由数组名称表示。
- 数组的大小应在初始化时声明。
- 可以使用数组的起始索引来检索数组的其余元素。
Typescript 支持数组,就像 JavaScript 中的那样。在 typescript 中声明数组有两种方法:
1. 使用方括号。
let array_name[:datatype] = [val1, val2, valn..]
例子:
javascript
let fruits: string[] = ['Apple', 'Orange', 'Banana'];
javascript
var values: (string | number)[] = ['Apple', 2, 'Orange', 3, 4, 'Banana'];
// or
var values: Array = ['Apple', 2, 'Orange', 3, 4, 'Banana'];
javascript
let fruits: string[] = ['Apple', 'Orange', 'Banana'];
fruits[0]; // returns Apple
fruits[1]; // returns Orange
fruits[2]; // returns Banana
fruits[3]; // returns undefined
javascript
let fruits: string[] = ['Apple', 'Orange', 'Banana'];
for(var index in fruits)
{
console.log(fruits[index]); // output: Apple Orange Banana
}
for(var i = 0; i < fruits.length; i++)
{
console.log(fruits[i]); // output: Apple Orange Banana
}
javascript
let arr:number[];
arr = [1, 2, 3, 4]
console.log("Array[0]: " +arr[0]);
console.log("Array[1]: " +arr[1]);
javascript
var mArray:number[][] = [[10, 20, 30], [50, 60, 70]] ;
console.log(mArray[0][0]);
console.log(mArray[0][1]);
console.log(mArray[0][2]);
console.log();
console.log(mArray[1][0]);
console.log(mArray[1][1]);
console.log(mArray[1][2]);
javascript
// Initializing an Array by using the Array object.
let arr:string[] = new Array("GEEKSFORGEEKS", "2200", "Java", "Abhishek");
for(var i = 0;i
javascript
let arr:string[] = new Array("GEEKSFORGEEKS", "2300", "Java", "Abhishek");
// Passing an Array in a function
function display(arr_values:string[]) {
for(let i = 0;i
javascript
let arr1 = [ 1, 2, 3];
let arr2 = [ 4, 5, 6];
//Create new array from existing array
let copyArray = [...arr1];
console.log("CopiedArray: " +copyArray);
//Create new array from existing array with more elements
let newArray = [...arr1, 7, 8];
console.log("NewArray: " +newArray);
//Create array by merging two arrays
let mergedArray = [...arr1, ...arr2];
console.log("MergedArray: " +mergedArray);
2. 使用泛型数组类型。
TypeScript 数组可以包含不同数据类型的元素,如下所示。
let array_name: Array = [val1, val2, valn..]
示例:多类型数组
javascript
var values: (string | number)[] = ['Apple', 2, 'Orange', 3, 4, 'Banana'];
// or
var values: Array = ['Apple', 2, 'Orange', 3, 4, 'Banana'];
示例:访问数组元素
- 数组元素访问基于索引ie)ArrayName[index]。
javascript
let fruits: string[] = ['Apple', 'Orange', 'Banana'];
fruits[0]; // returns Apple
fruits[1]; // returns Orange
fruits[2]; // returns Banana
fruits[3]; // returns undefined
- 我们可以使用“FOR”循环访问数组元素:
javascript
let fruits: string[] = ['Apple', 'Orange', 'Banana'];
for(var index in fruits)
{
console.log(fruits[index]); // output: Apple Orange Banana
}
for(var i = 0; i < fruits.length; i++)
{
console.log(fruits[i]); // output: Apple Orange Banana
}
好处
代码优化:我们可以更有效地检索或排序数组数据。
随机访问:我们可以使用位置指针随机访问数组数据。
缺点
大小限制:数组的大小是固定的,即)静态的。一旦声明了数组大小,我们就无法增加它。
数组有两种类型:
1.一维数组
2.多维数组
一维数组
它是最简单的数组形式,仅包含一行用于存储数据。它包含一组方括号(“[]”)。
句法:
let array_name[:datatype];
初始化:
array_name = [val1, val2, valn..]
例子:
javascript
let arr:number[];
arr = [1, 2, 3, 4]
console.log("Array[0]: " +arr[0]);
console.log("Array[1]: " +arr[1]);
输出:
Array[0]: 1
Array[1]: 2
多维数组
数据以多维数组的行和列(也称为矩阵形式)存储。
TypeScript 数组
句法:
let arr_name:datatype[][] = [ [a1, a2, a3], [b1, b2, b3] ];
初始化:
let arr_name:datatype[initial_array_index][referenced_array_index] = [ [val1, val2, val 3], [v1, v2, v3]];
例子:
javascript
var mArray:number[][] = [[10, 20, 30], [50, 60, 70]] ;
console.log(mArray[0][0]);
console.log(mArray[0][1]);
console.log(mArray[0][2]);
console.log();
console.log(mArray[1][0]);
console.log(mArray[1][1]);
console.log(mArray[1][2]);
输出:
10
20
30
50
60
70
数组对象
我们可以通过使用或初始化数组对象来创建一个数组。 Array 构造函数用于传递以下参数来创建数组:
- 用表示数组大小的数值。
- 逗号分隔值的列表。
句法:
1.let arr_name:datatype[] = new Array(values);
例子:
javascript
// Initializing an Array by using the Array object.
let arr:string[] = new Array("GEEKSFORGEEKS", "2200", "Java", "Abhishek");
for(var i = 0;i
输出:
GEEKSFORGEEKS
2200
Java
Abhishek
将数组传递给函数
我们可以通过指定不带索引的数组名称将数组传递给函数。
例子:
javascript
let arr:string[] = new Array("GEEKSFORGEEKS", "2300", "Java", "Abhishek");
// Passing an Array in a function
function display(arr_values:string[]) {
for(let i = 0;i
输出
GEEKSFORGEEKS
2300
Java
Abhishek
使用 TypeScript 'Spread'运算符
扩展运算符可用于从另一个数组或对象初始化数组和对象。它也可以用于对象解构。它是 ECMAScript 6 版本的一部分。
javascript
let arr1 = [ 1, 2, 3];
let arr2 = [ 4, 5, 6];
//Create new array from existing array
let copyArray = [...arr1];
console.log("CopiedArray: " +copyArray);
//Create new array from existing array with more elements
let newArray = [...arr1, 7, 8];
console.log("NewArray: " +newArray);
//Create array by merging two arrays
let mergedArray = [...arr1, ...arr2];
console.log("MergedArray: " +mergedArray);
输出:
CopiedArray: 1, 2, 3
NewArray: 1, 2, 3, 7, 8
MergedArray: 1, 2, 3, 4, 5, 6