Возможности синтаксиса ES6 (3) Введение в карту коллекции Set

1. Знакомство с набором

  Сам Set является конструктором, используемым для создания структуры данных Set.
  Он похож на массив, но его элементы уникальны и не повторяются.
  При добавлении значения в Set преобразования типов не происходит.Это похоже на оператор точного равенства (===).Основное отличие состоит в том, что при добавлении значения в Set NaN считается равным самому себе, а точное оператор равенства считает NaN не равным самому себе.
  Set может получать массив в качестве параметра и используется для инициализации
  методов:
  size возвращает количество элементов в наборе
  add добавляет элемент и возвращает текущий набор
  delete удаляет элемент и возвращает логическое значение
  определяет, содержит ли набор элемент и возвращает логическое значение

1.1. Использование

1.1.1 Дедупликация массива

    function noRepeat(arr) {
    
    
      return Array.from(new Set(arr))
      // return [...new Set(arr)]
    }  
      let s = new Set();
      let arr = [1, 2, 1, 2, 3, 4, 2, 2, 34, 2, 4, 2, 4, 32, 2];
      let s2 = new Set(arr);
       console.log(noRepeat(arr))
      console.log(s, typeof s);
      console.log(s2);

1.1.2 Дедупликация строк

[...new Set('sssuuunnn')].join('')   // join  ['s', 'u', 'n'] => sun

1.1.3 Пересечение

  let arr1 = [1, 1, 2, 1, 3, 4, 5, 6];
      let arr2 = [4, 5, 6, 7, 8, 7, 1, 5, 7];
      // let result = [...new Set(arr1)].filter(item => {
    
    
      //   let s2 = new Set(arr2);
      //   if (s2.has(item)) return true;
      //   else return false;
      // });
      let result = [...new Set(arr1)].filter(item => new Set(arr2).has(item));
      console.log(result);

1.1.4 Союз

      let arr1 = [1, 1, 2, 1, 3, 4, 5, 6];
      let arr2 = [4, 5, 6, 7, 8, 7, 1, 5, 7];
      let nuino = new Set([...arr1, ...arr2]);
      console.log(nuino);

1.1.5 Набор различий

      let arr1 = [1, 1, 2, 1, 3, 4, 5, 6];
      let arr2 = [4, 5, 6, 7, 8, 7, 1, 5, 7];
      // let result = [...new Set(arr1)].filter(item => {
    
    
      //   let s2 = new Set(arr2);
      //   if (s2.has(item)) return false;
      //   else return true;
      // });
      let result = [...new Set(arr1)].filter(item => !new Set(arr2).has(item));
      console.log(result);

1.2. Установка атрибутов и методов экземпляров

1.2.1. Свойства

  размер: атрибут размера указывает, сколько элементов содержится в коллекции set.

new Set([1, 2]).size  // 2

1.2.2.Метод

  add(value) : добавляет значение и возвращает саму структуру Set.

      s2.add(100);
      console.log(s2);

  delete(value) : удалить значение и вернуть логическое значение, указывающее, было ли удаление успешным.

  	  // 删除不存在的元素
      s2.delete(99);
      console.log(s2);
      // 删除存在的元素
      s2.delete(1);
      console.log(s2);

  has(value) : Возвращает логическое значение, указывающее, является ли параметр членом Set.

      console.log(s2.has(99)); // false
      console.log(s2.has(100)); // true

  clear() : Очистить все члены, без возвращаемого значения

      s2.clear();
      console.log(s2);

1.3. Установка метода обхода

  keys() : Возвращает средство обхода имен ключей.value
  () : Возвращает средство обхода значений ключей.entries
  () : Возвращает средство обхода пар ключ-значение
  для…of…

    let setArr = new Set([1, 6, 6, 'sun', {
    
    name: 'sun'}])
    for(let item of setArr.keys()) {
    
    
      console.log(item);
       // 1 6 sun {name: 'sun'}
    }
    for(let item of setArr.values()) {
    
    
      console.log(item);
      // 1 6 sun {name: 'sun'}
    }
    for(let item of setArr.entries()) {
    
    
      console.log(item);
      // [1, 1] [6, 6] [sun, sun] [{name: 'sun'}, {name: 'sun'}] 
    }
    for(let item of setArr) {
    
    
      console.log(item);
       // 1 6 sun {name: 'sun'}
    }

2. Знакомство с картой

  ES6 предоставляет структуру данных Map, которая похожа на объект и также представляет собой набор пар ключ-значение.
  Однако диапазон ключей не ограничивается строками.В качестве ключей могут использоваться различные типы значений (в том числе объекты).Карта
  реализует интерфейс итератора, и по ней можно перемещаться с помощью оператора расширения и for of.
  Атрибуты и методы карты:
  size возвращает количество элементов в
  наборе карты; добавляет элемент и возвращает текущую карту;
  get возвращает ключевое значение ключевого объекта;
  определяет, содержит ли карта элемент, и возвращает логическое значение.
  Clear очищает карту и возвращает неопределенное значение

      let m = new Map();

2.1. размер

    console.log(m.size); // 0

2.2. набор

      m.set('name', 'wf');
      let key = {
    
    
        world: 'a,b,c'
      };
      m.set(key, [1, 2, 3]);
      console.log(m);

2.3. удалить

      m.delete('name');

2.4. получать

     m.get('name');

2.5. имеет

   console.log(m.has('name')); // true
   console.log(m.has('age')); // false

2.6. прозрачный

   m.clear();

2.7.Обход

      for (let v of m) {
    
    
        console.log(v);
      }

Supongo que te gusta

Origin blog.csdn.net/qq_36158551/article/details/135276275
Recomendado
Clasificación