2012-08-16 35 views
0

我想使用getJSON函數抽取數據來填充對象數組。使用從JSON中抽取的循環填充數組

我目前做的目標對象,但知道它會是乾淨多了一個for循環...

這裏的的getJSON:

$.getJSON("http://www.reddit.com/r/pics.json?jsonp=?", 
    function(data) { 

     var imageurl1 = data.data.children[0].data.url; 
     var imagecaption1 = data.data.children[0].data.title;; 
     var commentlink1 = "http://www.reddit.com" + data.data.children[0].data.permalink; 

     var imageurl2 = data.data.children[1].data.url; 
     var imagecaption2 = data.data.children[1].data.title; 
     var commentlink2 = "http://www.reddit.com" + data.data.children[1].data.permalink; 

     } 

而這裏的陣列I」 m使用該數據對於

var lightboximages = [ 
{ 
    src: imageurl1, 
    caption: imagecaption1, 
    comments: commentlink1 
}, { 
    src: imageurl2, 
    caption: imagecaption2, 
    comments: commentlink2 
}] 

任何與循環的幫助將不勝感激!

+0

(有數組中的10個對象,但放了兩個在這裏爲簡便起見)! – 2012-08-16 18:49:18

回答

1

沒有測試,但是這是想法:

$.getJSON("http://www.reddit.com/r/pics.json?jsonp=?", 
    function(data) { 
     var lightboxArray = []; 
     for (var i=0; i<data.data.children.length; i++) { 
      var child = data.data.children[i]; 
      var lightboxObj = {"src":child.data.url, "caption":child.data.title, "comments":child.data.permalink}; 
      lightboxArray.push(lightboxObj); 
     } 
     // now call some function to process the array we've built 
    }); 
+0

是的,這將工作 – gmaliar 2012-08-16 18:59:51

+0

賓果......非常感謝。作爲一個附錄,爲了確保只有10個圖片拉我添加了一個切片 - data.data.children.slice(0,9).length – 2012-08-16 19:56:47

+0

我認爲切片排除最後一個項目,所以你可能想要切片(0,10)。但爲了一個更安全的方法,爲了確保你對返回數組少於10個項目的返回數組沒有問題,我只需將for循環中的測試更改爲「i jfrank 2012-08-16 22:01:33