Set.prototype.delete()
Метод delete() удаляет уникальный элемент из объекта Set .
Интерактивный пример
Синтаксис
mySet.delete(value);
Параметры
Обязательный. Значение элемента для удаления из объекта Set .
Возвращаемое значение
true , если элемент был успешно удалён из объекта Set , иначе false .
Примеры
Использование метода delete
var mySet = new Set(); mySet.add("foo"); mySet.delete("bar"); // Вернёт false. Отсутствует элемент "bar" для удаления. mySet.delete("foo"); // Вернёт true. Успешно удалён. mySet.has("foo"); // Вернёт false. Элемент "foo" больше не присутствует.
Давайте проверим как удалить Object из Set.
var setObj = new Set(); // Создаём новый Set. setObj.add( x: 10, y: 20 >); // Добавляем объект в набор. setObj.add( x: 20, y: 30 >); // Добавляем объект в набор. // Удаляем любой point с `x > 10`. setObj.forEach(function (point) if (point.x > 10) setObj.delete(point); > >);
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-set.prototype.delete |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
Удаление из Set элементов другой коллекции Set
В метод передаются две коллекции Set. в Коллекции pets содержатся несколько элементов из cats и их нужно удалить из pets. Не получается это сделать через итератор, закомментировал реализацию через итератор. Подскажите пожалуйста что я сделал не так.
public static void removeCats(Set pets, Set cats) < // Iteratorit = pets.iterator(); // // for (Cat x : cats) < // // if (x.equals(it)) < // it.remove(); // >// > for (Cat x : cats) pets.remove(x); >
Отслеживать
задан 23 дек 2015 в 19:23
Maksim Korkodinov Maksim Korkodinov
395 1 1 золотой знак 6 6 серебряных знаков 17 17 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Если я правильно понял, что и откуда надо удалить, то надо делать так:
Iterator iterator = cats.iterator(); while (iterator.hasNext())
У вас же зачем-то сравнивается итератор с экземпрялом класса Cat и это условие всегда будет false , если метод equals() реализован верно.
Как убрать сет полицейского
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
-Nam1k0
Участник
Автор темы
Недавно решил сделать так что-бы не было видно армора на аризоне(лаунчер), армора не видно да вот только сет полицейского стал белым и не красивым.
Помогите вообще удалить текстуру этого сета.
Вот как выглядит :
Особенности языков программирования
В этой статье будет дан обзор библиотеки STL с самого начального уровня, и до продвинутой, весьма полезной в ряде задач, функциональности.
Проще всего начать знакомство с STL со стандартных типов для хранения данных — контейнеров. Каждый раз, когда в программе возникает необходимость оперировать множеством элементов, в дело вступают контейнеры. Контейнер — это практическая реализация функциональности некоторой структуры данных. В языке C (не в C++) существовал только один встроенный тип контейнера: массив. Сам по себе массив имеет ряд недостатков: к примеру, размер динамически выделенного массива невозможно определить на этапе выполнения. Однако основной причиной для более внимательного ознакомления с контейнерами STL является отнюдь не вышеперечисленные недостатки массива. Истинная причина кроется несколько глубже. Дело в том, что в реальном мире структура данных, информацию о которых необходимо хранить, далеко не всегда удачно представима в виде массива. В большинстве случаев требуется контейнер несколько иной функциональности. К примеру, нам может потребоваться структура данных «множество строк», поддерживающая следующие функции:
— добавить строку к множеству;
— удалить строку из множества;
— определить, присутствует ли в рассматриваемом множестве данная строка;
— узнать количество различных строк в рассматриваемом множестве;
— просмотреть всю структуру данных, «пробежав» все присутствующие строки. Конечно, легко запрограммировать тривиальную реализацию функциональность подобной структуры данных на базе обычного массива. Но такая реализация будет крайне неэффективной. Для достижения приемлемой производительности имеет смысл реализовать хэш-таблицу или сбалансированное дерево, но задумайтесь: разве реализация подобной структуры данных (хэш либо дерево) зависит от типа хранимых объектов? Если мы потом захотим использовать ту же структуру не для строк, а, скажем, для точек на плоскости — какую часть кода придётся переписывать заново? Реализация подобных структур данных на чистом C оставляла программисту два пути. 1) Жёсткое решение (Hard-Coded тип данных). При этом изменение типа данных приводило к необходимости внести большое число изменений в самых различных частях кода. 2) По возможности сделать обработчики структуры данных независимыми от используемого типа данных. Иными словами, использовать тип void* везде, где это возможно. По какому бы пути реализации структуры данных в виде контейнера вы не пошли, скорее всего, никто другой ваш код понять, и тем более модифицировать, будет не в состоянии. В лучшем случае другие люди смогут им просто пользоваться. Именно для таких ситуаций существуют стандарты — чтобы программисты могли говорить друг с другом на одном и том же формальном языке. Шаблоны (Templates) в C++ предоставляют замечательную возможность реализовать контейнер один раз, формализовать его внешние интерфейсы, дать асимптотические оценки времени выполнения каждой из операций, а после этого просто пользоваться подобным контейнером с любым типом данных. Можете быть уверены: разработчики стандарта C++ так и поступили. В первой части курса мы на практике познакомимся с основными концепциями, положенными в основу контейнеров C++.
