Автор оригинала: FreeCodeCamp Community Member.
Асиф Норзай
УСТАНОВЛЕННЫЙ ?
ES2015/ES6 дал нам много полезных инструментов и функций, но один, который выделяется больше всего для меня. Это не используется для его полного потенциала. Я надеюсь убедить вас от своей ценности с этой статьей, чтобы вы могли пожинать полные преимущества этой прекрасной полезности.
Так что набор, вы спрашиваете?
Установить удаляет дубликаты записей.
Основные функциональные возможности?
Всякий раз, когда вы хотите использовать Установленный , вы должны инициализировать его, используя Новый Ключевое слово и пропуск в начальном ИТЕРИТЕЛЬНО данные, оставьте это пустым или 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]);
Установите утилиты/методы?
Добавить , Как и его имя предлагает, добавляет новые записи на вновь инициализированный набор const. Если в любое время в комплект добавляется дубликатное значение, он будет отброшен с помощью Строгое равенство Отказ
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
});есть Проверяет, если значение, которое вы проходите в существующих в Новейшие const. Если значение существует, он вернет логическое значение правда и это вернется ложный Если это делает нет
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ясно & Удалить два из самых важных функций Установленный Если вы хотите удалить все записи или удалить определенное значение.
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Ключи и Значения Оба имеют ту же функциональность, что странно, если вы думаете о том, как они ведут себя с объектами JS. Они оба возвращают итератор объект. Это означает, что вы можете получить доступ к .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"]Этого достаточно функциональности для нас, чтобы использовать сегодня на наших проектах. ?
Прежде чем идти : Если вам понравилось этот пост, следуй за мной здесь, а также на Twitter , где я публикую и ретвит, связанный с веб-контентом.
Оригинал: “https://www.freecodecamp.org/news/lets-learn-about-set-and-its-unique-functionality-in-javascript-5654c5c03de2/”