- TypeScript 教程
- TypeScript - 主页
- TypeScript - 概述
- TypeScript - 环境设置
- TypeScript - 基本语法
- TypeScript - 类型
- TypeScript - 变量
- TypeScript - 运算符
- TypeScript - 决策
- TypeScript - 循环
- TypeScript - 函数
- TypeScript - 数字
- TypeScript - 字符串
- TypeScript - 数组
- TypeScript - 元组
- TypeScript - 联盟
- TypeScript - 接口
- TypeScript - 类
- TypeScript - 对象
- TypeScript - 命名空间
- TypeScript - 模块
- TypeScript - 环境
- TypeScript 有用资源
- TypeScript - 快速指南
- TypeScript - 有用的资源
- TypeScript - 讨论
TypeScript - 数组
使用变量来存储值有以下限制 -
变量本质上是标量。换句话说,变量声明一次只能包含一个。这意味着要在程序中存储 n 个值,需要 n 个变量声明。因此,当需要存储更大的值集合时,使用变量是不可行的。
程序中的变量以随机顺序分配内存,因此很难按照声明的顺序检索/读取值。
TypeScript 引入了数组的概念来解决这个问题。数组是同质值的集合。简单来说,数组是相同数据类型的值的集合。它是用户定义的类型。
数组的特点
这是数组的特征列表 -
数组声明分配连续的内存块。
数组是静态的。这意味着数组一旦初始化就无法调整大小。
每个内存块代表一个数组元素。
数组元素由称为元素下标/索引的唯一整数标识。
与变量一样,数组也应该在使用之前声明。使用 var 关键字声明数组。
数组初始化是指填充数组元素。
数组元素值可以更新或修改,但不能删除。
声明和初始化数组
要在 Typescript 中声明初始化数组,请使用以下语法 -
句法
var array_name[:datatype]; //declaration array_name = [val1,val2,valn..] //initialization
没有数据类型的数组声明被认为是 any 类型。此类数组的类型是在初始化期间根据数组第一个元素的数据类型推断出来的。
例如,像这样的声明 - var numlist:number[] = [2,4,6,8]将创建一个数组,如下所示 -
数组指针默认指向第一个元素。
数组可以在一条语句中声明和初始化。其语法是 -
var array_name[:data type] = [val1,val2…valn]
注意- [] 对称为数组的维数。
访问数组元素
数组名后跟下标用于引用数组元素。其语法如下 -
array_name[subscript] = value
示例:简单数组
var alphas:string[]; alphas = ["1","2","3","4"] console.log(alphas[0]); console.log(alphas[1]);
编译时,它将生成以下 JavaScript 代码 -
//Generated by typescript 1.8.10 var alphas; alphas = ["1", "2", "3", "4"]; console.log(alphas[0]); console.log(alphas[1]);
上述代码的输出如下 -
1 2
示例:单语句声明和初始化
var nums:number[] = [1,2,3,3] console.log(nums[0]); console.log(nums[1]); console.log(nums[2]); console.log(nums[3]);
编译时,它将生成以下 JavaScript 代码 -
//Generated by typescript 1.8.10 var nums = [1, 2, 3, 3]; console.log(nums[0]); console.log(nums[1]); console.log(nums[2]); console.log(nums[3]);
其输出如下 -
1 2 3 3
数组对象
还可以使用 Array 对象创建数组。可以传递 Array 构造函数。
表示数组大小的数值或
逗号分隔值的列表。
以下示例展示了如何使用此方法创建数组。
例子
var arr_names:number[] = new Array(4) for(var i = 0;i<arr_names.length;i++) { arr_names[i] = i * 2 console.log(arr_names[i]) }
编译时,它将生成以下 JavaScript 代码。
//Generated by typescript 1.8.10 var arr_names = new Array(4); for (var i = 0; i < arr_names.length; i++) { arr_names[i] = i * 2; console.log(arr_names[i]); }
其输出如下 -
0 2 4 6
示例:数组构造函数接受逗号分隔值
var names:string[] = new Array("Mary","Tom","Jack","Jill") for(var i = 0;i<names.length;i++) { console.log(names[i]) }
编译时,它将生成以下 JavaScript 代码 -
//Generated by typescript 1.8.10 var names = new Array("Mary", "Tom", "Jack", "Jill"); for (var i = 0; i < names.length; i++) { console.log(names[i]); }
其输出如下 -
Mary Tom Jack Jill
数组方法
下面给出了 Array 对象的方法列表及其描述。
编号 | 方法及说明 |
---|---|
1. | 连接()
返回一个由该数组与其他数组和/或值连接组成的新数组。 |
2. | 每一个()
如果此数组中的每个元素都满足提供的测试函数,则返回 true。 |
3. | 筛选()
创建一个新数组,其中包含该数组中所提供的过滤函数返回 true 的所有元素。 |
4. | forEach()
为数组中的每个元素调用一个函数。 |
5. | 指数()
返回数组中等于指定值的元素的第一个(最小)索引,如果未找到,则返回 -1。 |
6. | 加入()
将数组的所有元素连接成一个字符串。 |
7. | 最后索引()
返回数组中等于指定值的元素的最后一个(最大)索引,如果未找到,则返回 -1。 |
8. | 地图()
创建一个新数组,其中包含对该数组中每个元素调用提供的函数的结果。 |
9. | 流行音乐()
从数组中删除最后一个元素并返回该元素。 |
10. | 推()
将一个或多个元素添加到数组末尾并返回数组的新长度。 |
11. | 减少()
同时对数组的两个值(从左到右)应用函数,以将其减少为单个值。 |
12. | 减少右()
同时对数组的两个值(从右到左)应用函数,以将其减少为单个值。 |
13. | 撤销()
反转数组元素的顺序 - 第一个变为最后一个,最后一个变为第一个。 |
14. | 转移()
从数组中删除第一个元素并返回该元素。 |
15. | 片()
提取数组的一部分并返回一个新数组。 |
16. | 一些()
如果此数组中至少有一个元素满足提供的测试函数,则返回 true。 |
17. | 种类()
对数组的元素进行排序。 |
18. | 拼接()
添加和/或删除数组中的元素。 |
19. | toString()
返回表示数组及其元素的字符串。 |
20. | 取消移位()
将一个或多个元素添加到数组的前面并返回数组的新长度。 |
数组解构
指打破实体的结构。在数组上下文中使用时,TypeScript 支持解构。
例子
var arr:number[] = [12,13] var[x,y] = arr console.log(x) console.log(y)
编译时,它将生成以下 JavaScript 代码。
//Generated by typescript 1.8.10 var arr = [12, 13]; var x = arr[0], y = arr[1]; console.log(x); console.log(y);
其输出如下 -
12 13
使用 for…in 循环遍历数组
可以使用for...in循环来遍历数组。
var j:any; var nums:number[] = [1001,1002,1003,1004] for(j in nums) { console.log(nums[j]) }
该循环执行基于索引的数组遍历。
编译时,它将生成以下 JavaScript 代码。
//Generated by typescript 1.8.10 var j; var nums = [1001, 1002, 1003, 1004]; for (j in nums) { console.log(nums[j]); }
上述代码的输出如下 -
1001 1002 1003 1004
TypeScript 中的数组
TypeScript 支持数组中的以下概念 -