实用的Set、Map使用技巧


在JavaScript中,Set和Map是ES6引入的两种新的数据结构,它们分别提供了一种存储唯一值的集合和键值对的映射。以下是一些实用的Set和Map的使用技巧:

Set 使用技巧:

  1. 数组去重:

    const array = [1, 2, 2, 3, 4, 4, 5];
    const uniqueArray = [...new Set(array)];
  2. 检查数组中是否包含重复元素:

    const hasDuplicates = array.length !== new Set(array).size;
  3. 交集、并集、差集操作:

    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 使用技巧:

  1. 对象模拟Map:

    const mapObj = {
      key1: 'value1',
      key2: 'value2'
    };
    const map = new Map(Object.entries(mapObj));
  2. 遍历 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);
    }
  3. Map 转换为对象:

    const map = new Map([['name', 'John'], ['age', 30]]);
    const obj = Object.fromEntries(map);
  4. 默认值:

    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