📜  TypeScript 数组

📅  最后修改于: 2022-05-13 01:56:18.772000             🧑  作者: Mango

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