[Typescript]基础篇之数组

本文介绍了TypeScript中数组的基础知识,包括声明、初始化和解构。同时,详细讲解了数组的迭代、多维数组以及常用的方法如every、some、indexOf、lastIndexOf、reduce、sort、slice等的应用,帮助理解如何在TypeScript中操作和管理数组。


数组对象是使用单独的变量名来存储一系列的值。

声明

let arr:[datatype][]

初始化

let arr:[datatype][]=[val1,val2,val3...]
let arr:[datatype][]= new Array(4) //初始化数组大小
let arr:[datatype][]= new Array(val1,val2,val3...) //初始化数组

数组声明时未设置类型,则会被认为是 any 类型,在初始化时根据第一个元素的类型来推断数组的类型

数组第一个元素的索引为 0

数组解构

typescript 写法是:

let arr: number[] = [12, 13];
let [x, y] = arr; // 将数组的两个元素赋值给变量 x 和 y
console.log(x); //12
console.log(y); //13

等价于 javascript 写法

let arr = [12, 13];
let x = arr[0],
  y = arr[1]; // 将数组的两个元素赋值给变量 x 和 y
console.log(x);
console.log(y);

数组迭代

循环的方式基本都可用于迭代数组

多维数组

let arr_name:datatype[][]=[ [val1,val2,val3],[v1,v2,v3] ]

数组方法

方法简介

方法名称描述
concat连接多个数组,返回新数组,原数组不变
every检测是否每个数值元素都符合条件
filter返回符合条件的所有元素的数组
forEach数组每个元素都执行回调函数
indexOf字符串在指定字符串或数组中的位置
lastIndexOf字符串在指定字符串或数组最后出现位置
join把数组的所有元素放入一个字符串
map处理数组的每个元素,并返回处理后的数组
push向数组的末尾添加元素,并返回新的长度
reduce计算数组元素为一个值(从左到右)
reduceRight计算数组元素为一个值(从右到左)
sort对数组的元素进行排序
reverse反转数组的元素顺序
pop删除数组的最后一个元素并返回删除元素
shift删除并返回数组的第一个元素
unshift向数组的开头添加元素,并返回新的长度
slice选取数组的的一部分,并返回一个新数组
some检测数组元素中是否有元素符合指定条件
splice从数组中添加或删除元素
toString把数组转换为字符串,并返回结果

方法应用

every

用于检测是否每一个元素都符合条件,都符合返回true,否则返回false

function isBigEnough(element, index, array) { 
        return (element >= 10); 
} 
        
let passed = [12, 5, 8, 130, 44].every(isBigEnough); 
console.log("Test Value : " + passed ); // false

some

用于检测是否存在符合条件的元素,存在返回true,不存在返回false

function isBigEnough(element, index, array) { 
   return (element >= 10); 
          
} 
          
let retval = [2, 5, 8, 1, 4].some(isBigEnough);
console.log("Returned value is : " + retval );  // false
          
let retval = [12, 5, 8, 1, 4].some(isBigEnough); 
console.log("Returned value is : " + retval );  // true

indexOf

搜索数组中的元素,并返回它所在的位置。
如果搜索不到,返回值 -1,代表没有此项。

let index = [12, 5, 8, 130,55, 44].indexOf(8); 
console.log("index is : " + index );  // 2

lastIndexOf

返回搜索字符串在指定字符串或数组最后出现的位置,从后向前搜索,但是返回的索引值是从左到右的位置数值

let index = [12, 5, 8, 130,55, 44].lastIndexOf(8); 
console.log("index is : " + index );  // 2

reduce

将数组元素计算为一个值(从左到右)。

let total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; }); 
console.log("total is : " + total );  // 6

sort

对数组中元素按照ASCI码进行排序

let arr = new Array("orange", "mango", "banana", "sugar"); 
let sorted = arr.sort(); 
console.log("Returned string is : " + sorted );  // banana,mango,orange,sugar

slice

选取数组的的一部分,并返回一个新数组。

arr.splice(start, end?)
  • start 截取数组的起始索引位置
  • end 截取数组的结束索引位置,若该值不存在,则指向数组最后一个元素的索引

splice

从数组中添加或删除元素,改变原有数组,返回值是被删除的元素,因此添加元素的时候返回为空

arr.splice(start, length, element1?,...,elementn?)
  • start 插入或删除的起始索引位置
  • length 为0表示添加元素,>0表示删除元素个数
  • element1,…,elementn 表示添加的n个元素
let arr = ["orange", "mango", "banana", "sugar", "tea"];  
let removed = arr.splice(2, 0, "water");  
console.log("After adding 1: " + arr );    // orange,mango,water,banana,sugar,tea 
console.log("removed is: " + removed); // removed is: 
          
removed = arr.splice(3, 1);  
console.log("After removing 1: " + arr );  // orange,mango,water,sugar,tea 
console.log("removed is: " + removed);  //removed is: banana

pop

删除数组的最后一个元素,并返回删除元素,因此原数组被修改

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三知之灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值