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中文网其他相关文章!