23.Map

Map

Map 是 ES6 中新增的第二種集合類型的數據,用來存儲鍵值對。類似于對象,但是它的屬性也可以是個對象

  • 通過 new 關鍵字來創建一個 Map
const people = new Map();
  • 通過 set 方法來添加元素
people.set('dp', 18);
people.set('tms', 17);
console.log(people); // Map(2) {"dp" => 18, "tms" => 17}
  • 通過 delete 方法刪除一個元素
people.delete('dp'); // true
  • 通過 has 方法檢驗一個元素是否存在
people.has('dp'); //true
  • 可以通過 size 來獲取長度
console.log(people.size); // 3
  • 可以通過 clear 方法來清空
people.clear();
  • Set 是可以遍歷的
    可以用 for of 遍歷集合
for (let [key,value] of people){
    console.log(key.value);
}

也可以用 forEach 方法來遍歷

people.forEach((item ,key ,map)=>{
    console.log(item ,key ,map);
})
  • 可以通過初始化創建 Set
const fruits = new Set(['apple', 6], ['banana', 5]);

Map 的應用,按鈕點擊計數

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <button>Fire ??
        <span>0</span>
    </button>
    <button>Dancer ??
        <span>0</span>
    </button>
    <button>Fish ??
        <span>0</span>
    </button>

    <script>
        const btnMap = new Map();
        const buttons = document.querySelectorAll('button');
        Array.from(buttons).map(btn => {
            btnMap.set(btn, 0);
            btn.addEventListener('click', function () {
                let val = btnMap.get(this);
                btnMap.set(this, val + 1);
                this.querySelector('span').innerHTML = val + 1;
            });
        });
    </script>
</body>

</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容