typescript笔记(九)
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