2013-09-29 15 views
32

Jak wykonać iterację w istniejącej tablicy i dodać elementy do nowej tablicy.Jak dodawać elementy do tablicy w nodejs

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

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

Powyższy kod będzie normalnie pracować w JS, nie jestem pewien co do alternatywy w node js. Próbowałem .push i .splice, ale nie działało.

+4

Istnieje wiele złych rzeczy z kodem; to oznacza, że ​​nie próbowaliście bardzo, aby to działało! Na przykład, co dzieje się z 'tablica [] = item.id'? To spowodowałoby błąd składniowy w normalnym js. – starwed

Odpowiedz

8

Oto przykład, który może dać pewne wskazówki do iteracji istniejącej tablicy i dodawania elementów do nowej tablicy. Używam modułu UnderscoreJS do użycia jako plik narzędzia.

można pobrać z (https://npmjs.org/package/underscore)

$ npm install underscore 

Oto niewielki fragment wykazać w jaki sposób można to zrobić.

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

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

console.log(newArray); 
81

Wyjazd Javascript's Array API Szczegółowe informacje na temat dokładnej składni metod Array. Modyfikacja kodu użyć poprawna składnia byłoby:

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

console.log(array); 

Można również użyć metody map() wygenerować tablicę wypełnioną wyników wywołanie określonej funkcji na każdym elemencie. Coś jak:

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

console.log(array); 

, a od ECMAScript 2015 został zwolniony, można zacząć widzieć przykłady korzystania let lub const zamiast var i składnię => tworzenia funkcji. Poniżej zamieszczona jest równoznaczne z poprzedniego przykładu (oprócz tego, że mogą nie być obsługiwane w starszych wersjach węzłów):

let array = calendars.map(item => item.id); 
console.log(array); 
0
var array = []; 

//length array now = 0 
array[array.length] = 'hello'; 
//length array now = 1 
//   0 
//array = ['hello'];//length = 1 
Powiązane problemy