Maps 和Sets 是ES6 (ECMAScript 2015) 中引入的兩個重要資料結構,它們提供了比傳統物件和陣列更強的功能。 地圖 和集 都允許您儲存唯一值並以更有條理、更有效率的方式處理資料。
Map 是鍵值對的集合,其中鍵和值都可以是任何資料型態。與只能使用字串或符號作為鍵的物件不同,Map 允許使用任何值(物件、陣列、函數等)作為鍵。
要建立 Map,可以使用 Map 建構子:
const map = new Map();
或者,您可以使用鍵值對陣列初始化 Map:
const map = new Map([ ['name', 'Alice'], ['age', 25], ['city', 'New York'] ]); console.log(map);
您可以使用 set() 方法新增項目:
const map = new Map(); map.set('name', 'John'); map.set('age', 30); map.set('city', 'Los Angeles'); console.log(map);
您可以使用 get() 方法存取與鍵關聯的值:
const map = new Map([ ['name', 'Alice'], ['age', 25] ]); console.log(map.get('name')); // Output: Alice console.log(map.get('age')); // Output: 25
要檢查某個鍵是否存在,請使用 has() 方法:
const map = new Map([ ['name', 'John'], ['age', 30] ]); console.log(map.has('name')); // Output: true console.log(map.has('city')); // Output: false
您可以使用delete()方法刪除鍵值對:
map.delete('age'); console.log(map.has('age')); // Output: false
要清除地圖上的所有條目:
map.clear(); console.log(map.size); // Output: 0
您可以使用 forEach() 或 for...of 迴圈迭代 Map 中的鍵值對:
const map = new Map([ ['name', 'Alice'], ['age', 25] ]); // Using forEach map.forEach((value, key) => { console.log(key, value); }); // Using for...of for (const [key, value] of map) { console.log(key, value); }
Set 是唯一值的集合,這表示它會自動刪除任何重複值。與可以儲存多個相同元素的陣列不同,集合確保集合中的每個值都是唯一的。
您可以使用 Set 建構子建立一個 Set:
const set = new Set();
或者,您可以使用值數組初始化 Set:
const set = new Set([1, 2, 3, 4, 5]); console.log(set);
您可以使用 add() 方法將值加到 Set 中:
const set = new Set(); set.add(1); set.add(2); set.add(3); set.add(2); // Duplicate value, won't be added console.log(set); // Output: Set { 1, 2, 3 }
要檢查 Set 中是否存在某個值,請使用 has() 方法:
console.log(set.has(2)); // Output: true console.log(set.has(4)); // Output: false
您可以使用delete()方法從Set中刪除值:
const map = new Map();
要清除集合中的所有值:
const map = new Map([ ['name', 'Alice'], ['age', 25], ['city', 'New York'] ]); console.log(map);
您可以使用 forEach() 或 for...of 迴圈迭代 Set 中的值:
const map = new Map(); map.set('name', 'John'); map.set('age', 30); map.set('city', 'Los Angeles'); console.log(map);
Feature | Map | Set |
---|---|---|
Storage | Stores key-value pairs | Stores unique values only |
Key Types | Any type (objects, arrays, primitive types) | Only values (no keys) |
Uniqueness | Keys must be unique, values can repeat | Values must be unique |
Order of Elements | Iterates in insertion order | Iterates in insertion order |
Size | map.size | set.size |
Methods | set(), get(), has(), delete(), clear() | add(), has(), delete(), clear() |
尺寸
儲存使用者偏好
地圖提供高效的鍵值對存儲,支援任何資料類型作為鍵,並且它們維護插入順序。
集合
以上是在 JavaScript 中使用地圖和集合:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!