在JavaScript中,Set和Map是ES6引入的两种新的数据结构,它们分别提供了一种存储唯一值的集合和键值对的映射。以下是一些实用的Set和Map的使用技巧:
数组去重:
const array = [1, 2, 2, 3, 4, 4, 5]; const uniqueArray = [...new Set(array)];
检查数组中是否包含重复元素:
const hasDuplicates = array.length !== new Set(array).size;
交集、并集、差集操作:
const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4]); // 交集 const intersection = new Set([...set1].filter(x => set2.has(x))); // 并集 const union = new Set([...set1, ...set2]); // 差集 const difference = new Set([...set1].filter(x => !set2.has(x)));
对象模拟Map:
const mapObj = { key1: 'value1', key2: 'value2' }; const map = new Map(Object.entries(mapObj));
遍历 Map:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); // 遍历键 for (const key of myMap.keys()) { console.log(key); } // 遍历值 for (const value of myMap.values()) { console.log(value); } // 遍历键值对 for (const [key, value] of myMap.entries()) { console.log(key, value); }
Map 转换为对象:
const map = new Map([['name', 'John'], ['age', 30]]); const obj = Object.fromEntries(map);
默认值:
const defaultValues = new Map(); defaultValues.set('color', 'red'); defaultValues.set('size', 14); function getItem(key) { return defaultValues.get(key) || 'default'; } console.log(getItem('color')); // 'red' console.log(getItem('price')); // 'default'
这些技巧可以帮助你更好地利用Set和Map,简化代码并提高代码的可读性。
原文链接:codingdict.net