typescript笔记(九)

2020-05-27  本文已影响0人  执剑饮烈酒

Array(数组)

一、语法:

var array_name[:datatype];        //声明

array_name = [val1,val2,valn..]  //初始化

或者

var array_name[:data type] = [val1,val2…valn]

如果数组声明时未设置类型,则会被认为是 any 类型

实例:

例如:

根据索引

let arr : string[];

arr = ['tianjin','beijing','hebei'];

console.log(arr[0]); //tianjin

console.log(arr[2]);  //hebei

声明时直接初始化

let str : number[] = [1,2,3,4];

console.log(str[0])  //1

console.log(str[2])    //3

console.log(str[3])    //4

二、数组对象

Array 对象的构造函数接受以下两种值:

表示数组大小的数值。

初始化的数组列表,元素使用逗号分隔值。

例如:

let arr_names:number[] = new Array(4);

for(let i = 0; i < arr_names.length; i++){

    arr_names[i] = i * 2;

    console.log(arr_names[i]);      // 0 2 4 6

}

let a:string[] = new Array('tianjin','hebei','beijing')

for(let j = 0; j <a.length; j++){

    console.log(a[j]); //tianjin hebei beijing

}

三、数组解构

数组元素赋值给变量;

例如:

let arr:number[] = [12,23];

let [x,y] =    //arr; 将数组arr的两个变量赋值给x y;

console.log(x,y)    //12 23

四、数组迭代

使用 for 语句来循环输出数组的各个元素:

例如:

let j : any;

var num : number[] = [12,23,34,45];

for( j in num){

    console.log(num[j]) //12 23 34 45

}

五、多维数组:一个数组的元素可以是另外一个数组

例如:

let arr:number[][] = [[1,2,3],[23,24,25]];

console.log(arr[0][0])  //1

console.log(arr[0][1])  //2

console.log(arr[0][2])  //3

console.log(arr[1][0])  //23

console.log(arr[1][1])  //24

console.log(arr[1][2])  //25

六、数组在函数中使用

1、作为参数

例如:

let arr : string[] = new Array('tianjin','hebei','beijing');

function fn(arr:string[]){

    for(let j = 0; j < arr.length; j++){

        console.log(arr[j]);    //tianjin hebei beijing

    }

}

fn(arr);

2、返回值

例如:

function fn(){

    return new Array('tianjin','hebei','beijing')

}

var num = fn();

for(let i in num){

    console.log(num[i]);        //tianjin hebei beijing

}

七、数组方法:concat、every、filter、foreach、indexof、join、lastindexof、map、pop、push、reduce、reduceright、reverse、shift、slice、some、sort、splice、tostring、UNshift

1)、concat:连接两个或更多的数组,并返回结果。

例如:

var i:string= 'tianjin';

var j : string = 'hebei';

console.log(i.concat(j));

2)、every:检测数值元素的每个元素是否都符合条件。

注意:是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true;从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。

例如:

let arr = [ 12, 23, 34, 45,56, 67 ];

console.log( arr.every( function( item, index, array ){

    console.log( 'item=' + item + ',index=' + index+',array=' + array );

    return item > 3;

}));

item=12,index=0,array=12,23,34,45,56,67

item=23,index=1,array=12,23,34,45,56,67

item=34,index=2,array=12,23,34,45,56,67

item=45,index=3,array=12,23,34,45,56,67

item=56,index=4,array=12,23,34,45,56,67

item=67,index=5,array=12,23,34,45,56,67

true

3)、filter:检测数值元素,并返回符合条件所以元素的数组

例如:

function is(element,index,array){

    return (element < 10);

}

let arr = [1,2,3,4,44,22,35,77].filter(is);

console.log('value'+arr);  //value1,2,3,4

4)、foreach:每个元素都执行一次回调函数。

例如:

let num = [7,8,9];

num.forEach(function(value){

    console.log(value);    //7 8 9

})

5)、indexof:搜索数组中的元素,并返回所在位置;如果搜索不到返回-1.代表没有此项。

例如:

let index = [12, 23, 34, 5, 5].indexOf(5);

console.log("index is :" + index);  //下标

6)、join()把数组的所有元素放入一个字符串。

例如:

let arr = new Array('first','second','this');

let a = arr.join();

console.log('a'+a)

let r = arr.join();

console.log('r'+r)

let s = arr.join();

console.log('s'+s)

结果:

afirst,second,this

rfirst,second,this

sfirst,second,this

7)、lastIndexOf()返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

例如:

let index = [12,2,3,34,45,56].lastIndexOf(45)

console.log(index) //4

8)、map()通过指定函数处理数组的每个元素,并返回处理后的数组

例如:

var numbers = [1, 16, 25];

var roots = numbers.map(Math.sqrt);

// Math.sqrt  返回一个正平方根

console.log("roots is : " + roots );  // 1,4,5

9)、pop:删除数组的最后一个元素并返回删除的元素

例如:

let num = [1,4,9];

let element = num.pop();

console.log(element)    //9

let element1 = num.pop();

console.log(element1)      //4

10)、push:向数组的末尾添加一个或更多元素,并返回新的长度。

例如:

let num = new Array(1,2,3,4);

let leng = num.push(9);

console.log(leng);  //5

let lent = num.push(6);

console.log(lent)  //6

11)、reduce:将数组元素计算为一个值(从左到右);

例如:

let total = [0,2,4,6].reduce(function(a,b){

    return a + b;

})

console.log(total);    //12

12)、reduceright:将数组元素计算为一个值(从右到左)

例如:

let total = [1,3,5,7].reduceRight(function(a,b){

    return a + b;

})

console.log(total);    //16

13)、reverse:反转数组元素顺序。

例如:

let arr = [1,2,3,4,5,6].reverse();

console.log(arr);  //6 5 4 3 2 1

14)、shift:删除并返回数组第一个元素;

例如:

let arr = [22,3,2,4,4].shift();

console.log(arr);  //22

15)、slice:选取数组的一部分,并返回一个新数组;

例如:

let str = ['tianjin','hebei','beijing'];

console.log(str.slice(1,2));        //hebei

console.log(str.slice(1,3))    //hebei beijing

16)、some()检测数组元素中是否有元素符合指定条件。

例如:

function is(item,index,array){

    return (item >= 8)

}

let ret = [2,5,8,1,4].some(is);

console.log(ret);      //8

17)、sort()数组排序

例如:

let arr = new Array('tianjin','beijing','hebei');

let s = arr.sort();

console.log(s);    //beijing hebei tianjin

18)、splice添加或删除元素

例如:

let arr = ["tianjin","beijing","hebei","pingshan","shijianzhuang"];

let rem = arr.splice(2, 0, "taoyuan");

console.log(arr)    //tianjin beijing  taoyuan hebei pingshan shijiazhuang

rem = arr.splice(3,1);

console.log(rem);  //hebei

19)、tostring:数组转为字符串,并返回结果;

例如:

let arr = new Array('orange',"mango","banana","sugar");

let str = arr.toString();

console.log(str);      //orange mango banana sugar

20)、UNshift()向数组的开头添加一个或更多元素,并返回新的长度。

例如:

let arr = new Array('orange','mango',"banana","sugar")

let leng = arr.unshift('green');        //添加

console.log(arr);      //green orange mango banana sugar

console.log(leng);      //5

上一篇下一篇

猜你喜欢

热点阅读