和 JavaScript 语言一样,TypeScript 中也有数组类型。
数组指的有序的元素序列,例如 [1, 2, 3] 这样的就一个数组,1、2、3 就数组中的元素,中括号[]javascript数组对象 内可以由任意数量的元素。但每个元素之间的类型必须相同,比如数组中的数字类型就必须全部元素都数组类型,像 [1, 2, '3'] 这样突然夹杂一个字符串类型不被允许的。
数组静态的,这意味着数组一旦初始化就无法调整小。
声明和初始化数组
在 TypeScript 中声明和初始化数组也很简单,和声明数字类型和字符串类型的变量也差不多,只不过在指定数组类型时要在类型后面加上一个中括号 []。
语法格式:
let array_name[:datatype] = [val1,val2…valn]
等号左边声明数组,指定数组的类型,等号右边给数组初始化赋值。如果声明数组时,没有给数组指定数据类型,则这个数组为 any 类型,在初始化时会根据数组中个元素的类型来推断数
组的类型。
示例:
例如创建一个字符串类型的数组,数组中《神雕侠侣》中的人物名称:
let character:string[] = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"];
console.log(character);
需要注意的,当们指定了一个数组的类型,那么这个数组中的元素也必须这个类型,否则会导致报错。上述代码中,们指定了数组为字符串类型,数组元素只能字符串类型的。
示例:
例如在一个字符串类型数组中,如何有一个元素数字类型的:
let character:string[] = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁", 1];
console.log(character);
执行代码,提示们编译失败,输出如下所示:
Type 'number' is not assignable to type 'string'.
除了使用中括号 [] 的方法来声明数组,们还可以使用数组泛型来定义数组。
语法如下所示:
let array_name:Array;
示例:
例如声明一个数字类型的数组:
let numArr:Array = [1, 2, 3, 4, 5];
console.log(numArr);
Array 对象
们可以通过 Array 对象来创建数组。Array 对象的构造函数接受以下两种值:
•一个数值,表示数组的小。
•初始化的数组列表,元素使用逗号分隔。
示例:
例如们定义一个小为 4 的数组,可以使用 for 循环向数组中赋值:
let numArr:number[] = new Array(4); //表示数组的小为4
for(let i = 0; i < numArr.length; i++) {
numArr[i] = i;
}
console.log(numArr);
编译成 JavaScript 代码:
var numArr = new Array(4);//表示数组的小为4
for (var i = 0; i < numArr.length; i++) {
numArr[i] = i;
}
console.log(numArr);
输出:
[ 0, 1, 2, 3 ]
或者可以直接在 Array 对象的构造函数中初始化数组列表:
let myName:string[] = new Array("xkd","summer","Iven")
console.log(myName);
编译成 JavaScript 代码:
var myName = new Array("xkd", "summer", "Iven");
console.log(myName);
输出:
[ 'xkd', 'summer', 'Iven' ]
访问数组元素
们来看这个数组:
["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"]
在这个数组中,个元素 “杨过” 的索引值为 0,第二个元素 “小龙女” 的索引值为 1, 第三个元素 “郭襄” 的索引值为 2,后面的依次类推。
那么知道数组中元素的索引值有什么作用呢,们可以通过对应的索引来访问数组元素。
示例:
例如们想要获取数组中的个元素的值,就可以通过索引 0 来实现:
let character:string[] = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"];
// 个元素的索引为0
console.log(character[0]);
编译上述代码,得到的 JavaScript 代码如下所示:
var character = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"];
// 个元素的索引为0
console.log(character[0]);
输出结果为:
杨过
那如果们想要访问数组中第二个、第三个、第四个...元素呢,只需要将中括号 [] 里面的索引值变为与元素对应的索引即可,如下所示:
console.log(character[1]); // 小龙女
console.log(character[2]); // 郭襄
console.log(character[3]); // 郭靖
console.log(character[4]); // 黄蓉
console.log(character[5]); // 李莫愁
数组 character 中最后一个元素的索引为 5,那假设们访问索引 6 对应的元素会得到什么呢,可以试试看:
console.log(character[6]); // undefined
很明显,输出结果为 undefined,表示没有与这个索引值对应的元素。
那如果们希望索引 6 也能对应一个元素值呢,要怎么? 们可以通过索引给元素赋值。
示例:
数组中没有与索引为 6 对应的元素,那们可以给数组中的索引为 6 的元素赋值为”一灯“:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论