web-dev-qa-db-fra.com

Comment ajouter des éléments à array dans nodejs

Comment puis-je parcourir un tableau existant et ajouter les éléments à un nouveau tableau.

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

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

Le code ci-dessus fonctionnerait normalement dans JS, pas sûr de l'alternative dans node js. J'ai essayé .Push et .splice mais aucun n'a fonctionné.

55
Ben Scarberry

Consultez l'API Array de Javascript pour plus de détails sur la syntaxe exacte des méthodes Array. Modifier votre code pour utiliser la syntaxe correcte serait:

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

console.log(array);

Vous pouvez également utiliser la méthode map() pour générer un tableau contenant les résultats de l'appel de la fonction spécifiée sur chaque élément. Quelque chose comme:

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

console.log(array);

Et, depuis qu'ECMAScript 2015 a été publié, vous pouvez commencer à voir des exemples utilisant let ou const à la place de var et de la syntaxe => pour la création de fonctions. Ce qui suit est équivalent à l'exemple précédent (sauf qu'il peut ne pas être pris en charge dans les anciennes versions de nœud):

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

Voici un exemple qui peut vous donner des astuces pour parcourir un tableau existant et ajouter des éléments à un nouveau tableau. J'utilise UnderscoreJS Module à utiliser comme fichier utilitaire.

Vous pouvez télécharger depuis ( https://npmjs.org/package/underscore )

$ npm install underscore

Voici un petit extrait montrant comment vous pouvez le faire.

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

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

console.log(newArray);
9
Gaurang Jadia
var array = [];

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