Подтвердить что ты не робот

Массив JavaScript для установки

Ссылки MSDN JavaScript Установить абстракции коллекции. У меня есть массив объектов, которые я хотел бы преобразовать в набор, чтобы я мог удалить (.delete()) различные элементы по имени:

var array = [
    {name: "malcom", dogType: "four-legged"},
    {name: "peabody", dogType: "three-legged"},
    {name: "pablo", dogType: "two-legged"}
];

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

Я также могу думать о преобразовании в Map, для удаления с помощью ключа. То, что я пытаюсь выполнить, - это итеративная коллекция, к которой можно получить доступ или изменить доступ через элементы, прежде всего через ключ (в отличие от индекса).

Преобразование из массива в другое является конечной целью.

4b9b3361

Ответ 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"
}

Что имеет такой же эффект.