typescript遍历Map

作者: 李泽1988 | 来源:发表于2017-04-17 20:08 被阅读8309次

    Map遍历对于任何一门语言来说都是入门级的东西,太小儿科了。但ts有坑还是说一下。

    有一个map

    let map= new Map<string, string>();
    map.set("a1","1");
    

    最简单的遍历方式

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

    这些需要注意的是参数顺序,value在前,key在后。

    复杂的方式

    let iterator = map.values();
    let r: IteratorResult<string>;
    while (r = iterator.next() , !r.done) {
        console.log(r.value);
    }
    

    使用for of 遍历

    for(let i of map.values()){
        console.log(i);
    }
    

    这个也非常好!但是,target=es6才行。es6毕竟太新,很多时候都是target=ts5,这个方法就用不了了!
    提示

    Type 'IterableIterator<string>' is not an array type.

    因为target=ts5时,不支持遍历IterableIterator,太惨了。

    for in 掉入坑

    for (let i in map.values()) {
        console.log(i);
    }
    

    这个编译器不会报错,但是根本不会进入循环!

    将map的value(key)转成数组

    有个很简单的方法

    Array.from

    let a = Array.from(departmentMap.values());
    

    扩展表达式也很简单,但是es6才可以使用。

    let a = [...departmentMap.values()];
    

    相关文章

      网友评论

        本文标题:typescript遍历Map

        本文链接:https://www.haomeiwen.com/subject/zafxzttx.html