Давайте узнаем о Set и его уникальной функциональности в JavaScript?

1656557527 davajte uznaem o set i ego unikalnoj funkczionalnosti v javascript

автор Асиф Норзай

yHYXOoOwWcn1h5cpOX41qpwb7KkEVbKQTqfy
Не будьте дубликатом, иначе Сет поймает вас

SET?

ES2015/ES6 дал нам много полезных инструментов и функций, но больше всего для меня выделяется Set. Он не используется в полной мере. Я надеюсь убедить вас в его целесообразности посредством этой статьи, чтобы вы могли воспользоваться всеми преимуществами этой прекрасной утилиты.

Итак, что такое Set, спросите вы?

“The Set Объект позволяет сохранять уникальные значения любого типа, будь то примитивные значения или ссылки на объект.», MDN.

Набор удаляет повторяющиеся записи.

Основная функциональность ?

Когда захотите использовать Setвам нужно инициализировать его с помощью new ключевое слово и передайте исходные итерированные данные, оставьте его пустым или null.

// All valid ways to initialize a set
const newSet1 = new Set();
const newSet2 = new Set(null);
const newSet3 = new Set([1, 2, 3, 4, 5]);

Установите утилиты/методы ?

add, как следует из названия, добавляет новые записи в недавно инициализированный Set const. Если в любой момент в набор будет добавлено повторяющееся значение, оно будет отброшено с помощью strict equality.

const newSet = new Set();

newSet.add("C");
newSet.add(1);
newSet.add("C");

// chain add functionality
newSet.add("H").add("C");

newSet.forEach(el => {
  console.log(el);
  // expected output: C
  // expected output: 1
  // expected output: H
});

has проверяет, существует ли значение, которое вы передаете, в файле newSet конст. Если значение существует, оно вернет логическое значение trueи оно вернется false если это не так

const newSet = new Set(["A", 2, "B", 4, "C"]);

console.log(newSet.has("A"));
// expected output: true

console.log(newSet.has(4));
// expected output: true

console.log(newSet.has(5));
// expected output: false

clear & delete являются двумя важнейшими функциями Set если вы хотите удалить все записи или удалить определенное значение.

const newSet = new Set(["A", 2, "B", 4, "C"]);

newSet.delete("C");
// expected output: true

newSet.delete("C");
// expected output: false

newSet.size
// expected output: 4

newSet.clear();
// expected output: undefined

newSet.size
// expected output: 0

keys и values оба имеют одинаковую функциональность, что удивительно, если подумать о том, как они обращаются с объектами JS. Они оба возвращаются iterator объект. Это означает, что вы можете получить доступ к .next() метод на нем, чтобы получить его значение.

const newSet = new Set(null);

newSet.add("Apples");
newSet.add(12);

let iterator = newSet.keys();  // same as newSet.values();

console.log(iterator.next().value);
// expected output: Apples

console.log(iterator.next().value);
// expected output: 12

console.log(iterator.next().value);
// expected output: undefined

Соберите все это вместе

Давайте создадим простую функцию для хакерской вечеринки. Функция добавляет пользователей в список, только если у них есть одобрение администратора. Следовательно, в вашей записи должно быть имя администратора, которое секретно (но не в этой статье). В конце программы будет указано, кто приглашен.

// The Admins
const allowedAdminUsers = new Set(["Naimat", "Ismat", "Azad"]);

// An empty Set, stored in memory
const finalList = new Set();

// A function to add users to permission list
const addUsers = ({user, admin}) => {
  
   // Check to see if the admin is the admin 
  // list and that the user isn't already in the set
  if(allowedAdminUsers.has(admin) && !finalList.has(user)) {
    
    // Return the users list at the end
   return finalList.add(user);
    
  }
  // Console.log this message if the if the condition doesn't pass
  console.log(`user ${user} is already in the list or isn't allowed`); 
};

// Add some entries
addUsers({user: "Asep", admin: "Naimat"});
addUsers({user: "John", admin: "Ismat"});

// Lets add John again and this time that inner function console error will be shown
addUsers({user: "John", admin: "Azad"});

const inviationList = [...finalList].map(user => 
 `${user} is invited`);

console.log(inviationList);
// Expected output:  ["Asep is invited", "John is invited"]

Этого достаточно, чтобы мы могли использовать Set сегодня в наших проектах. ?

9HUfTsuNCDKzpF6NJsItRYlX-68khdXAb9hk

Перед тем как ты уйдешь: если вам понравилась эта публикация, следите за мной здесь, а также в Twitter, где я публикую и ретвитую веб-контент.

Добавить комментарий

Ваш адрес email не будет опубликован.