2016-03-26 17 views
0

Benim NodeJS uygulamasında yeşim içinde bir JSON nesnesi olsun (iyi çalışıyor). Burada (srcTweets) sadece ilgili verileri toplamaya çalıştım ve bunu yeni bir JSON nesnesinde (stgTweets) döndürdüm. Dinamik Tablo kullanımı için kullanıyorum.Farklı dizi öğeleri alırken aynı JSON ojbects

i aşağıdaki kese kullanımı Burada ön:

var srcTweets = []; 
    var srcTweets = !{JSON.stringify(tweets)}; 
    var aantalSrcTweets = srcTweets.length; 

    //Loop throug all tweets and collect all relevant elementen from srcTweet: 
    var stgTweet = {} 
    var stgTweets = []; 
    console.info('----------START LOOP--------------------'); 
    for(var i = 0; i < aantalSrcTweets; i++){ 
     console.info(i); 

     stgTweet.Id = srcTweets[i]._id; 
     stgTweet.userId = srcTweets[i].user.id; 
     stgTweet.userFollowerCount = srcTweets[i].user.followers_count; 
     stgTweet.userFriendCount = srcTweets[i].user.friends_count; 
     stgTweet.userFavouritesCount = srcTweets[i].user.favourites_count; 
     stgTweet.text = srcTweets[i].text; 
     stgTweet.coordinates = srcTweets[i].coordinates; 
     stgTweet.userLocation = srcTweets[i].user.location; 

     stgTweets[i] = stgTweet; 

     console.info(stgTweets[i]); 
     console.info(i); 
    } 
    console.info('----------END LOOP--------------------'); 

    //here i get the same items 
    console.info(stgTweets[0]); 
    console.info(stgTweets[1]); 

i dizinin farklı indeks dizge "stgTweet [0] ve stgTweet [1]", aynı veri gösterdi. Öğeleri for döngüsünde günlüğe kaydederek anlamaya çalıştım ama bu iyi görünüyor. Ve aslında nereye bakacağımı bilmiyorum.

Diziyi, aynı nesne yerine farklı nesnelerle nasıl dolduracağım, yukarıdaki komut dosyasında ne olur? Bunu stgTweets[0] === stgTweets[1], dizideki her eleman için aynı nesneyi yeniden ediyoruz ve nesneleri JavaScript referans olarak atanır çünkü

[ 
    Object { 
     _id="56e19eb1ac5e621e0797c423", 
     truncated=false, 
     text="@Model_Symphony nu ja, 
     s... prima Energiequelle...", 
     more... 
    }, 
    Object { 
     _id="56e1a73eac5e621e0797c424", 
     truncated=false, 
     text="Vandaag aangekondigd doo...", 
     more... 
    }, 
    Object { 
     _id="56e1a7b4ac5e621e0797c425", 
     truncated=false, 
     text="Mooi bedrijfsbezoek aan ...", 
     more... 
    } 
] 

cevap

1

nedeni: Burada

srcTweets bir örnektir.

yeni nesne her dizi öğesi için yaratıldığı şekilde içindeki döngü sizin stgTweet beyanı hareket (veya aşağıda gösterildiği gibi sadece doğrudan değerini yeniden atamak) olan yerine yapabileceğini Ne:

var stgTweets = new Array(aantalSrcTweets); 
for (var i = 0; i < aantalSrcTweets; i++){ 
    stgTweets[i] = { 
    Id: srcTweets[i]._id, 
    userId: srcTweets[i].user.id, 
    userFollowerCount: srcTweets[i].user.followers_count, 
    userFriendCount: srcTweets[i].user.friends_count, 
    userFavouritesCount: srcTweets[i].user.favourites_count, 
    text: srcTweets[i].text, 
    coordinates: srcTweets[i].coordinates, 
    userLocation: srcTweets[i].user.location 
    }; 
} 
+0

Çok teşekkürler!! Gerçekten akıllısın .. Cevabı 4 dakika içinde kabul edemem. Yani bu sizin için aldatılmış ise yaklaşık 30 dakika yapıyorum :-) –

İlgili konular