MSDN odwołuje się do abstrakcji zbioru zestawu JavaScript . Mam tablicę obiektów, które chciałbym przekonwertować na zestaw, aby móc usunąć ( .delete()
) różne elementy według nazwy:
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
Jak przekonwertować tę tablicę na zestaw? Dokładniej, czy można to zrobić bez iteracji po powyższej tablicy? Dokumentacja jest stosunkowo niewystarczająca (wystarczająca dla zestawów utworzonych; nie dla konwersji - jeśli to możliwe).
Być może myślę również o konwersji na mapę do usunięcia za pomocą klucza. To, co próbuję osiągnąć, to iterowalna kolekcja, do której można uzyskać dostęp lub zmodyfikować ją, uzyskując dostęp do elementów głównie za pomocą klucza (w przeciwieństwie do indeksu).
Ostatecznym celem jest konwersja z tablicy na drugą.
javascript
arrays
set
Tomasz
źródło
źródło
{"bob", "dole"}
nie jest prawidłowym obiektem.Set
iMap
są „czystą” implementacją tych konstrukcji danych, które nie cierpią z powodu problemów, któreObject
mogą, gdy coś jest dodawane do jego prototypu.Odpowiedzi:
Po prostu przekaż tablicę do konstruktora Set. Konstruktor Set akceptuje
iterable
parametr. Obiekt Array implementujeiterable
protokół, więc jest prawidłowym parametrem.Spójrz tutaj
źródło
Jeśli zaczynasz od:
I chcesz zestaw, powiedzmy, imion, zrobiłbyś:
źródło
To, co Levi powiedział o przekazaniu go do konstruktora, jest poprawne, ale można też użyć obiektu.
Myślę, że Veverke próbuje powiedzieć, że można łatwo użyć
delete
słowa kluczowego na obiekcie, aby osiągnąć ten sam efekt.Myślę, że jesteś zdezorientowany terminologią; właściwości to komponenty obiektu, których możesz używać jako nazwanych indeksów (jeśli chcesz o tym myśleć w ten sposób).
Spróbuj czegoś takiego:
Następnie możesz po prostu zrobić to:
Struktura obiektu wyglądałaby wtedy następująco:
Co ma ten sam efekt.
źródło
Z definicji „Zbiór to zbiór wartości, z których każda może wystąpić tylko raz”. Tak więc, jeśli twoja tablica zawiera powtarzające się wartości, tylko jedna wartość spośród powtarzających się wartości zostanie dodana do twojego zestawu.
Dlatego nie konwertuj na zestaw, jeśli masz powtarzające się wartości w tablicy.
źródło