Set.prototype.delete() в JavaScript
Метод delete() удаляет указанное значение из коллекции Set. Он возвращает true, если значение было найдено и удалено, и false, если такого значения в коллекции нет.
Синтаксис
set.delete(value)
Обычно метод вызывают у конкретной коллекции. Запись Set.prototype.delete означает, что этот метод доступен всем объектам Set.
let technologies = new Set(['HTML', 'CSS', 'JavaScript'])
let wasDeleted = technologies.delete('CSS')
console.log(wasDeleted) // true
console.log(technologies) // Set(2) {'HTML', 'JavaScript'}
delete() изменяет исходную коллекцию, а не создаёт новую.
Если значения нет в Set
Если передать значение, которого нет в коллекции, ошибки не будет. Метод вернёт false, а Set останется без изменений.
let technologies = new Set(['HTML', 'CSS'])
technologies.delete('React') // false
console.log(technologies.size) // 2
Удаление объектов
Чтобы удалить объект, нужно передать ту же ссылку, которая была добавлена в Set. Новый объект с такими же свойствами не подойдёт.
let user = { id: 1 }
let users = new Set([user])
users.delete({ id: 1 }) // false
users.delete(user) // true
console.log(users.size) // 0