Ich habe eine Variable, die ein Array ist, und ich möchte, dass jedes Element des Arrays standardmäßig als Objekt fungiert. Um dies zu erreichen, kann ich so etwas in meinem Code tun.
var sample = new Array();
sample[0] = new Object();
sample[1] = new Object();
Das funktioniert gut, aber ich möchte keine Indexnummer erwähnen. Ich möchte, dass alle Elemente meines Arrays ein Objekt sind. Wie deklariere oder initialisiere ich es?
var sample = new Array();
sample[] = new Object();
Ich habe den obigen Code ausprobiert, aber er funktioniert nicht. Wie initialisiere ich ein Array von Objekten ohne Verwendung einer Indexnummer?
javascript
arrays
object
declare
Prasath K.
quelle
quelle
array.push(objYouWant )
innerhalb der Funktion definitiv die Lösung. Auf diese Weise wird bei jeder Ausführung der Funktion ein neues Objekt mit den gewünschten Eigenschaften hinzugefügt.Antworten:
Verwenden Sie
array.push()
diese Option , um ein Element am Ende des Arrays hinzuzufügen.Um dies zu tun
n
mal eine Verwendungfor
Schleife.Beachten Sie, dass Sie auch
new Array()
mit[]
undnew Object()
mit ersetzen können,{}
so dass es wird:quelle
Je nachdem, was Sie unter Deklarieren verstehen , können Sie versuchen, Objektliterale in einem Array-Literal zu verwenden :
BEARBEITEN: Wenn Ihr Ziel ein Array ist, dessen
undefined
Elemente standardmäßig leere Objektliterale sind, können Sie eine kleine Dienstprogrammfunktion schreiben:Dann benutze es so:
Oder auch:
Natürlich
getDefaultObjectAt()
funktioniert die direkte Zuordnung zum Rückgabewert von nicht, daher können Sie nicht schreiben:quelle
push()
.Sie können fill () verwenden .
Erstellt ein Array von 5 Elementen. Dann können Sie zum Beispiel forEach verwenden.
Beachten Sie, dass
new Array(5)
es sich dabei nur um ein Objekt mit der Länge 5 handelt und das Array leer ist. Wenn Sie verwendenfill()
, füllen Sie jeden einzelnen Punkt mit dem, was Sie wollen.quelle
Nachdem Sie gesehen haben, wie Sie in den Kommentaren geantwortet haben. Es scheint, als wäre es am besten, es zu verwenden,
push
wie andere vorgeschlagen haben. Auf diese Weise müssen Sie die Indizes nicht kennen, können sie jedoch dem Array hinzufügen.In diesem Fall wird jedes Mal, wenn Sie diese Funktion verwenden, ein neues Objekt in das Array verschoben.
quelle
Sie müssen nie wirklich Leerzeichen erstellen
Object
. Mit ihnen kann man nichts anfangen. Fügen Sie einfach Ihre Arbeitsobjekte nach Bedarf zum Beispiel hinzu. Verwenden Sie,push
wie Daniel Imms vorgeschlagen hat, und verwenden Sie Literale, wie Frédéric Hamidi vorgeschlagen hat. Sie scheinen Javascript wie C programmieren zu wollen.Ich glaube, dass die Verwendung
new Array(10)
ein Array mit 10undefined
Elementen erstellt.quelle
Sie können ein Array vom Typ "Objekttyp" in einer Zeile wie folgt instanziieren (ersetzen Sie einfach neues Objekt () durch Ihr Objekt):
quelle
Nun
array.length
sollte der Trick machen oder nicht? Ich meine, Sie müssen den Indexbereich nicht kennen, wenn Sie ihn nur lesen.Vielleicht habe ich Ihre Frage nicht richtig verstanden, aber Sie sollten in der Lage sein, die Länge Ihres Arrays auf diese Weise zu ermitteln und sie in Objekte umzuwandeln. Daniel gab die gleiche Antwort, um ehrlich zu sein. Sie könnten einfach Ihre Array-Länge in seiner Variablen speichern und es wäre erledigt.
WENN und dies sollte meiner Meinung nach nicht passieren, können Sie Ihre Array-Länge nicht erhalten. Wie Sie sagten, ohne die Indexnummer zu erhalten, können Sie dies folgendermaßen tun:
Es ist die nicht schöne Version der obigen, aber die Schleife wird ausgeführt, bis Sie den Indexbereich "verlassen".
quelle
Versuche dies-
quelle
Dieses Beispiel funktioniert bei mir. Schnappschuss für die Ausgabe in der Browserkonsole
quelle
Verwenden Sie array.push (), um ein Element am Ende des Arrays hinzuzufügen.
du kannst es benutzen
quelle
Mit forEach können wir Daten speichern, falls wir bereits Daten haben, für die wir uns geschäftlich anmelden möchten.
Beispiel mit der einfachen for-Schleife
quelle
Wenn alle Elemente in einem Array Objekte sein sollen, können Sie mithilfe von JavaScript-Proxy eine Validierung auf Objekte anwenden, bevor Sie sie in ein Array einfügen. Es ist ganz einfach,
Wenn Sie nun versuchen, so etwas zu tun:
Es wird ein Fehler ausgegeben. Wenn Sie jedoch ein Objekt einfügen, ist Folgendes zulässig:
Weitere Informationen zu Proxies finden Sie unter folgendem Link: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
Wenn Sie nach einer Polyfill-Implementierung suchen, können Sie diesen Link überprüfen : https://github.com/GoogleChrome/proxy-polyfill
quelle
Der folgende Code aus meinem Projekt ist vielleicht gut für Sie
quelle
Jeder versucht dies .. und schlägt etwas vor.
quelle
quelle