1. 程式人生 > >JavaScript 集合類相關操作

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);
            });

其他的操作,比如集合的交差並補,遇到的時候在說吧。