2015-12-08 37 views
0

我目前正在實施Jribbble將我的Dribbble鏡頭拉入我的新投資組合。我已經把它設置成能夠拉出我分配給桶的所有鏡頭 - 太棒了!Randomise Dribbble API調用結果

我想要做的一件事是能夠隨機化返回的結果,以確保我的工作的良好傳播可見。

當前的代碼:

$.jribbble.setToken('3f99156fa1530d27432a9df8eb315e861d6b2fb4f59acaa210da8962e1427cf2'); 
 

 
      $.jribbble.buckets(333465).shots({per_page: 12}).then(function(res) { 
 
       var html = []; 
 

 
       res.forEach(function(shot) { 
 
        html.push('<li class="shots--shot">'); 
 
        html.push('<a href="' + shot.html_url + '" target="_blank">'); 
 
        html.push('<img src="' + shot.images.normal + '">'); 
 
        html.push('</a></li>'); 
 
       }); 
 

 
       $('.shots').html(html.join('')); 
 
      });

任何人任何想法我怎麼可能去呢?

我也試着隨機化的結果,一旦他們一直在使用所謂:

window.onload = function() { 
 
    var ul = document.querySelector('.shots'); 
 
    for (var i = ul.children.length; i >= 0; i--) { 
 
    ul.appendChild(ul.children[Math.random() * i | 0]); 
 
    } 
 
};

但我只得到這個錯誤:

Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. 

任何幫助非常不勝感激!

+2

如何洗牌你在回調中獲得的Array'res'?所以在迭代結果之前。看到http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array#2450976 –

+0

@MartinSchneider聽起來不錯,但我有點在如何連接它的所有損失一起!任何指針? – DanC

+1

@DanC我同意馬丁 - 你可以創建一個新的數組(你的html數組),而不是調用forEach,選擇隨機元素,將其推入新數組,並將其從res數組拼接。只要res數組的長度大於0,就重複此操作。 – lmenus

回答

1

以在SO-線程How to randomize (shuffle) a JavaScript array?

發現隨機播放功能,並在某處你的JavaScript添加。然後在迭代結果之前調用該函數:

function shuffle(array) { 
    // [...] shuffle function 
} 

$.jribbble.buckets(333465).shots({per_page: 12}).then(function(res) { 
    var html = []; 

    // shuffle the results 
    res = shuffle(res); 

    res.forEach(function(shot) { 
     html.push('<li class="shots--shot">'); 
     html.push('<a href="' + shot.html_url + '" target="_blank">'); 
     html.push('<img src="' + shot.images.normal + '">'); 
     html.push('</a></li>'); 
    }); 

    $('.shots').html(html.join('')); 
}); 

請記住,這隻能隨機洗牌從api返回的結果。所以如果你有100張圖片,並且api調用會返回最近的10張圖片,那麼它們將在這些圖片之間進行洗牌。

+0

輝煌 - 感謝您花時間提供幫助。 – DanC