JavaScript 集合类相关操作

昨天实习的时候,有个需求需要在javascript中使用HashMap的功能,我大脑一懵,JavaScript有map这种结构吗?百度了一下,果然有!在此记录一下JavaScript中相关的集合类操作。

    function list_test() {

    let list = [1, 2, 3, 4, 5];

    // 向最后插入一个元素
    list.push(6);
    // [ 1, 2, 3, 4, 5, 6 ]
    console.log(list);

    // 删除最后一个元素
    list.pop();
    // [1, 2, 3, 4, 5]
    console.log(list);

    list[4] = 100;
    // [ 1, 2, 3, 4, 100 ]
    console.log(list);

    // 转字符串 "1,2,3,4,100"
    console.log(list.join(","))

    // 删除下标从0开始的2个元素,并添加后面的元素
    list.splice(0,2,"a","b","C","a");
    // [ 'a', 'b', 'C', 'a', 3, 4, 100 ]
    console.log(list);

    Array.prototype.remove = function(value){
        let index = this.indexOf(value);
        if(index > -1){
            this.splice(index,1);
        }
    };

    list.remove('a');
    // [ 'b', 'C', 'a', 3, 4, 100 ]
    console.log(list);
}

function map_test(){
    let map = new Map();

    map.set("lisi","李四");
    map.set("zhangsan","张三");

    // 张三
    console.log(map.get("zhangsan"));
    // true
    console.log(map.has("zhangsan"));

    map.delete("zhangsan");

    // undefined
    console.log(map.get("zhangsan"));
    // false
    console.log(map.has("zhangsan"));

    map.forEach(function(value,key){
        console.log(value,key);
    });

    for(let [key,value] of map){
        console.log(key,value)
    }
}

function set_test(){
    let set = new Set();
    set.add(2);
    set.add(23);
    set.add(32);
    set.add(2);
    set.add(322);
    set.add(332);
    set.add(12);
    set.add(27);
    console.log(set);

    // 虽然没有 但是不报错
    set.delete(5);
    set.delete(2)
    console.log(set);

    set.forEach(element => {
        console.log(element);
    });
}

set_test();

总结

    List操作:

        增:list.push(obj)

        删最后一个:list.pop()  

        删指定下标:list.splice(index,1)  
        
        删指定元素:list.remove(obj) 该方法需要重写

        改:list[index] = obj

        查下标: list.indexOf(obj)

        删除并添加:list.splice(index,deleteNumber,obj...)

        转字符串:list.join(str)

        转字符串:list.toString()

        遍历:for循环 forEach等等

    Map操作:

        增:map.set(key,value)

        删:map.delete(key)

        改:map.set(key,value)

        查:map.get(key)

        key是否存在:map.has(key)

        遍历: 
            map.forEach(function(value,key,map){
                console.log(value,key);
            });

            for(let [key,value] of map){
                console.log(key,value)
            }

    Set操作:

        增:set.add(obj)

        删:set.delete(obj)

        遍历:
            set.forEach(element => {
                console.log(element);
            });

其他的操作,比如集合的交差并补,遇到的时候在说吧。

猜你喜欢

转载自blog.csdn.net/tsfx051435adsl/article/details/83382101