Array JavaScript da impostare

MSDN riferisce l'astrazione della raccolta di set di JavaScript. Ho una serie di oggetti che vorrei convertire in un set in modo da poter rimuovere ( .delete() ) vari elementi per nome:

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

Come convertire questa matrix in un set? Più in particolare, è ansible farlo senza iterazione sopra l'arrays di cui sopra? La documentazione è relativamente scarsa (sufficiente per gli insiemi istanziati, non per le conversioni – se ansible).

Potrei anche pensare alla conversione in una mappa , per la rimozione per chiave. Quello che sto cercando di realizzare è una collezione iterabile che può essere accessibile o modificata tramite l'accesso agli elementi principalmente tramite un tasto (contrariamente all'indice).

La conversione da una matrix all'altro è il fine ultimo.

Basta passare l'arrays al constructor Set. Il constructor Set accetta un parametro iterable . L'object Array implementa il protocollo iterable , quindi è un parametro valido.

 var arr = [55, 44, 65]; var set = new Set(arr); console.log(set.size === arr.length); console.log(set.has(65)); 

Quello che Levi ha detto di passarlo nel constructor è corretto, ma potresti anche usare un object.

Penso che cosa Veverke sta cercando di dire è che si potrebbe usare facilmente la parola chiave di delete su un object per get lo stesso effetto.

Penso che tu sia confuso dalla terminologia; le properties; sono componenti dell'object che è ansible utilizzare come indici di nome (se si vuole pensare in questo modo).

Prova qualcosa di simile:

 var obj = { "bob": "dole", "mr.": "peabody", "darkwing": "duck" }; 

Allora, potresti farlo:

 delete obj["bob"]; 

La struttura dell'object sarebbe allora:

 { "mr.": "peabody", "darkwing": "duck" } 

Che ha lo stesso effetto.