TS基础篇2:数组 及 元组

2018-09-09  本文已影响0人  一眼就认出你

@数组:

第一:基础类型 + 方括号

var shuzu =function(){
    let crr:number[]=[1,2,3,4,5];
    for(var items in crr){
          console.log(crr[items]);
    }
}
shuzu();

注意:

数组中的项不允许出现其他类型的数据


第二:数组泛型

var shuzu =function(){
    let arr:Array<string>=['歆瑗网络','教师节快乐'];
    for(var items in arr){
        console.log(arr[items]);
    }
}
shuzu();

注意:

数组中的项不允许出现其他类型的数据


第三:接口数组

interface NumberArray{
    [index:number]:string
}
var shuzu =function(){
    let crr:NumberArray=['1','2'];
    for(var items in crr){
        console.log(crr[items]);
    }
}
shuzu();

接口解释:NumberArray 表示:只要 index 的类型是 number,那么值的类型必须是 string。


第四:any在数组中的应用

var shuzu =function(){
    let crr: any[] = ['Yang Wei Xin', 18, { website: 'https://www.baidu.com' }];
    for(var items in crr){
        console.log(crr[items]);
        console.log(`${crr[items]}`);
    }
}
shuzu();

注意:

any 表示数组中允许出现任意类型数据


第五:map数组 及 多种遍历方式

var shuzu =function(){
    let mapArray= new Map<string, string>();
    mapArray.set("a1","1");
    mapArray.forEach((value , key) =>{
        console.log(key +" "+value);
    });
    let map= new Map();
    map.set("a2",2);
    map.set("a1",1);
    map.forEach((value , key) =>{
        console.log(key +" "+value);
    });
}
shuzu();

注意:

Map,Set 和 Promise 是 ES6 特性。
参考网址:https://www.jianshu.com/p/cd454aa2bea9
第一种遍历方式:

 map.forEach((value , key) =>{
        .....
 });

第二种遍历方式:

var shuzu =function(){
    let map= new Map<number,string>();
    map.set(1,"a1");
    map.set(2,"a2");
    for(let items of map.values()){
        console.log(items);
    }
}
shuzu();

区别:
1、在循环对象属性的时候,使用for...in ; 在遍历数组的时候的时候使用for...of。
2、for...in循环出的是key,for...of循环出的是value

第三种遍历方式:

var shuzu =function(){
    let map= new Map<number,string>();
    map.set(1,"a1");
    map.set(2,"a2");
    let iterator = map.values();
    let r: IteratorResult<string>;
    while (r = iterator.next() , !r.done) {
        console.log(r.value);
    }
}
shuzu();

第六:二维数组 及 正确的初始化

var shuzu =function(){
    let twoM : string[][] = [];
    //或let twoM : Array<Array<string>> = new Array<Array<string>>();
    twoM[0] = ["a1", "a2", "a3"]  //直接赋值数组
    twoM.push([])  //先插入一个空的数组
    twoM[1][1] = "b2"  //再向刚插入的数组赋值
    for(let x of twoM){
        for(let y of x){
            console.log(y);
        }  
        console.log(x);  
    }
}
shuzu();

@元组:

var shuzu =function(){
    let x: [string, number];
    x = ['蚂蚁部落', 5];
    x[2]=2;
    for(let v of x){
        console.log(v);
    }
}
shuzu();

注意:

1、数组中的数据类型必须和规定的类型顺序对应起来
2、当使用越界索引给数组赋值的时候,会使用联合类型(只要值是规定类型的某一种即可)。

上一篇 下一篇

猜你喜欢

热点阅读