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.

Ben Scarberry
quelle
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);
nkron
quelle
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);
Gaurang Jadia
quelle
5
var array = [];

//length array now = 0
array[array.length] = 'hello';
//length array now = 1
//            0
//array = ['hello'];//length = 1
user6335419
quelle