您的位置:首頁技術文章
文章詳情頁

JS中的Map對象用法及說明

瀏覽:183日期:2022-06-02 09:46:55
目錄
  • JS中的Map對象
  • JS中Map和普通對象
    • Map對象
    • Object對象
    • Objects 和 maps 的比較
  • 總結

    JS中的Map對象

    1.js創建map對象

    var map = new Map();

    2.將鍵值對放入map對象

    map.set("key",value)
    map.set("key1",value1)
    map.set("key2",value2)

    3.根據key獲取map值

    map.get(key)

    4.刪除map指定對象

    delete map[key]

    map.delete(key)

    5.循環遍歷map

    map.forEach(function(key){
      console.log("key",key) ?//輸出的是map中的value值
    })

    JS中Map和普通對象

    Map對象

    Map 對象保存鍵值對。任何值(對象,數組,字符串,數值,布爾,null,undefined) 都可以作為一個鍵或一個值。

    一個Map對象在迭代時會根據對象中元素的插入順序來進行 — 一個 for...of 循環在每次迭代后會返回一個形式為[key,value]的數組。

    Object對象

    Object 構造函數創建一個對象包裝器。內容為成對的名稱(字符串)與值(任何值),其中名稱通過冒號與值分隔。

    Objects 和 maps 的比較

    Objects 和 Maps 類似的是,它們都允許你按鍵存取一個值、刪除鍵、檢測一個鍵是否綁定了值。因此(并且也沒有其他內建的替代方式了)過去我們一直都把對象當成 Maps 使用。不過 Maps 和 Objects 有一些重要的區別,在下列情況里使用 Map 會是更好的選擇:

    MapObject意外的鍵Map 默認情況不包含任何鍵。只包含顯式插入的鍵。一個 Object 有一個原型, 原型鏈上的鍵名有可能和你自己在對象上的設置的鍵名產生沖突。注意: 雖然 ES5 開始可以用 Object.create(null) 來創建一個沒有原型的對象,但是這種用法不太常見。鍵的類型一個 Map的鍵可以是任意值,包括函數、對象或任意基本類型。一個Object 的鍵必須是一個 String 或是Symbol。鍵的順序Map 中的 key 是有序的。因此,當迭代的時候,一個 Map 對象以插入的順序返回鍵值。一個 Object 的鍵是無序的注意:自ECMAScript 2015規范以來,對象確實保留了字符串和Symbol鍵的創建順序; 因此,在只有字符串鍵的對象上進行迭代將按插入順序產生鍵。SizeMap 的鍵值對個數可以輕易地通過size 屬性獲取Object 的鍵值對個數只能手動計算迭代Map 是 iterable 的,所以可以直接被迭代。迭代一個Object需要以某種方式獲取它的鍵然后才能迭代。性能在頻繁增刪鍵值對的場景下表現更好。在頻繁添加和刪除鍵值對的場景下未作出優化。

    總結

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

    標簽: JavaScript
    国产综合久久一区二区三区