Массив JavaScript для установки
Ссылки MSDN JavaScript Установить абстракции коллекции. У меня есть массив объектов, которые я хотел бы преобразовать в набор, чтобы я мог удалить (.delete()
) различные элементы по имени:
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
Как преобразовать этот массив в набор? В частности, возможно ли это сделать без повторения вышеперечисленного массива? Документация относительно отсутствует (достаточно для создания экземпляров, а не для конверсий - если возможно).
Я также могу думать о преобразовании в Map, для удаления с помощью ключа. То, что я пытаюсь выполнить, - это итеративная коллекция, к которой можно получить доступ или изменить доступ через элементы, прежде всего через ключ (в отличие от индекса).
Преобразование из массива в другое является конечной целью.
Ответы
Ответ 1
Просто передайте массив в конструктор Set. Конструктор Set принимает параметр iterable
. Объект Array реализует протокол iterable
, поэтому его допустимый параметр.
var arr = [55, 44, 65];
var set = new Set(arr);
console.log(set.size === arr.length);
console.log(set.has(65));
Ответ 2
Что levi сказал о передаче его в конструктор правильно, но вы также можете использовать объект.
Я думаю, что Veverke пытается сказать, что вы можете легко использовать delete
ключевое слово на объект для достижения того же эффекта.
Я думаю, вы смущены терминологией; свойства являются компонентами объекта, которые вы можете использовать в качестве названных индексов (если вы хотите об этом думать).
Попробуйте что-то вроде этого:
var obj = {
"bob": "dole",
"mr.": "peabody",
"darkwing": "duck"
};
Затем вы можете просто сделать это:
delete obj["bob"];
Тогда структура объекта будет следующей:
{
"mr.": "peabody",
"darkwing": "duck"
}
Что имеет такой же эффект.