2013-09-29 35 views
32

Varolan bir dizide yinelemek ve öğeleri yeni bir diziye eklemek.nodejs içinde dizi öğesine öğe ekleme

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

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

Yukarıdaki kod normalde node js yılında alternatif konusunda emin değil, JS çalışacak. .push ve .splice'u denedim ama işe yaramadı.

+4

sizin koduyla yanlış bir çok şey vardır; Bu, onu işe almak için çok uğraştığınızı ima eder! Örneğin, dizi [] = item.id' ile neler oluyor? Bu normal js'de bir sözdizimi hatası oluşturur. – starwed

cevap

8

Varolan dizide yinelemek ve öğeleri yeni diziye eklemek için bazı ipuçları verebileceğiniz örnek aşağıda verilmiştir. Yardımcı dosyam olarak kullanmak için UnderscoreJS Modülü kullanıyorum.

Sen Burada bunu nasıl göstermek için küçük pasajıdır (https://npmjs.org/package/underscore)

$ npm install underscore 

dan indirebilirsiniz.

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

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

console.log(newArray); 
81

Kontrol dışarı Javascript's Array API Dizi yöntemleri için tam sözdizimi hakkında ayrıntılı bilgi için. senin kodunun değiştirilmesi doğru sözdizimi olurdu kullanmak: Ayrıca her bir elemanın belirtilen işlevini çağırarak sonuçları ile doldurulmuş bir Array üretmek için map() yöntemi kullanabilirsiniz

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

console.log(array); 

. Bir şey gibi: ECMAScript 2015 yayınlandı beri

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

console.log(array); 

Ve, sen let veya yerine var ait const ve fonksiyonlarını oluşturmak için => sözdizimi kullanılarak örnekler görmeye başlayabilirsiniz. (Bu eski düğüm sürümlerinde desteklenmiyor olabilir hariç) aşağıdaki önceki örnekte eşdeğerdir:

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