So fügen Sie dem Array in nodejs Elemente hinzu


74

Wie iteriere ich durch ein vorhandenes Array und füge die Elemente einem neuen Array hinzu?

var array = [];
forEach( calendars, function (item, index) {
    array[] = item.id
}, done );

function done(){
   console.log(array);
}

Der obige Code würde normalerweise in JS funktionieren, nicht sicher über die Alternative in node js. Ich habe es versucht .pushund .spliceaber keiner hat funktioniert.


5
Es gibt viele falsche Dinge mit Ihrem Code; das bedeutet, dass Sie sich nicht sehr bemüht haben, es zum Laufen zu bringen! Womit passiert zum Beispiel array[] = item.id? Das würde einen Syntaxfehler in normalem js erzeugen.
Starwed

Antworten:


142

Weitere Informationen zur genauen Syntax für Array-Methoden finden Sie in der Array-API von Javascript . Das Ändern Ihres Codes zur Verwendung der richtigen Syntax wäre:

var array = [];
calendars.forEach(function(item) {
    array.push(item.id);
});

console.log(array);

Sie können die map()Methode auch verwenden , um ein Array zu generieren, das mit den Ergebnissen des Aufrufs der angegebenen Funktion für jedes Element gefüllt ist. Etwas wie:

var array = calendars.map(function(item) {
    return item.id;
});

console.log(array);

Und seit ECMAScript 2015 veröffentlicht wurde, sehen Sie möglicherweise Beispiele, die die Syntax zum Erstellen von Funktionen verwenden letoder constanstelle von varund =>verwenden. Folgendes entspricht dem vorherigen Beispiel (außer dass es in älteren Knotenversionen möglicherweise nicht unterstützt wird):

let array = calendars.map(item => item.id);
console.log(array);

10

Hier ist ein Beispiel, das Ihnen einige Hinweise geben kann, wie Sie ein vorhandenes Array durchlaufen und Elemente zu einem neuen Array hinzufügen können. Ich verwende das UnderscoreJS-Modul als Dienstprogrammdatei.

Sie können herunterladen von ( https://npmjs.org/package/underscore )

$ npm install underscore

Hier ist ein kleiner Ausschnitt, um zu demonstrieren, wie Sie es tun können.

var _ = require("underscore");
var calendars = [1, "String", {}, 1.1, true],
    newArray = [];

_.each(calendars, function (item, index) {
    newArray.push(item);
});

console.log(newArray);

5
var array = [];

//length array now = 0
array[array.length] = 'hello';
//length array now = 1
//            0
//array = ['hello'];//length = 1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.