# TypeScript 中的数组

> 原文： [https://howtodoinjava.com/typescript/arrays/](https://howtodoinjava.com/typescript/arrays/)

通过简单易学的示例学习在 TypeScript 中创建数组，克隆数组，合并数组以及遍历数组元素。

```java
Table of Contents

Create Array
Iterate Through Array
Clone Array
Merge Arrays
```

## 创建数组

像 JavaScript 一样，TypeScript 具有数组类型以允许分配多个值。 通过在类型之后添加方括号来指定数组。

每次将新值添加到数组时，编译器都会检查类型兼容性，并在类型不匹配时发出警报。

```java
//array declaration and initialization in separate lines
let myArr1: boolean[];
let myArr2: boolean[] = [];
let myArr3: boolean[] = new Array();
let myArr4: boolean[] = Array();

myArr1 = [false, false, true];

//array inline declaration and initialization

//array of booleans	
let flags1: boolean[] = [false, false, true];	
//or
let	flags2: Array<boolean> =[false, false, true];

//array of numbers
let scores1: number[] = [10, 20, 30, 40];	
//or
let	scores2: Array<number> = [10, 20, 30, 40];	

```

#### 向数组添加元素

要向数组添加更多元素，请使用`push()`方法。

```java
//array of numbers
let scores: number[] = [10, 20, 30, 40];

scores.push( 50 );	//[10, 20, 30, 40, 50]

scores.push( 'abc' );	//data.ts(24,14): error TS2345: Argument of type '"abc"' is not  
						//assignable to parameter of type 'number'.

```

## 遍历数组

您可以使用`for...of`循环或传统的`for`循环来迭代数组元素。

#### 使用“`for…of`”循环

```java
let scores :number[] = [10, 20, 30, 40];	

for (var score of scores) {
	console.log(score);		//Outputs 10 20 30 40
}

```

请勿使用用于循环访问对象属性的“`for…in`”循环。

#### 使用传统的`for`循环

```java
let scores :number[] = [10, 20, 30, 40];	

for (var i = 0; i < scores.length; i++) {
	console.log(scores[i]);		//Outputs 10 20 30 40
}

```

## 克隆数组

使用[展开运算符](https://howtodoinjava.com/typescript/spread-operator/)克隆数组。 这是最简单和推荐的方法。

```java
let origScores :number[] = [10, 20, 30];	

let clonedScores = [...origScores];

console.log(clonedScores);		//[10, 20, 30]

origScores.push( 40 );

console.log(origScores);		//[10, 20, 30, 40]	is "changed"
console.log(clonedScores);		//[10, 20, 30] 	is "unchanged"

```

## 合并数组

也可以使用[展开运算符](https://howtodoinjava.com/typescript/spread-operator/)合并数组。 这是最简单推荐的方法。

```java
let scores1 :number[] = [10, 20, 30];	
let scores2 :number[] = [40, 50, 60];	

let mergedScore = [...scores1, ...scores2];

console.log(mergedScore);	//[ 10, 20, 30, 40, 50, 60 ]

```

将我的问题放在评论部分。

学习愉快！