2015-01-12 94 views
0

如何將此隨機結果更改爲從較低數字開始的序列?我是JS中的新成員,並試圖在沒有解決方案的情況下進行修改。我希望任何人都可以幫忙。將隨機結果更改爲序列

function randomFeed() { 
    var $el = $("#randomFeed"); 

var random = new Array('news1','news2','news3','news4','news5','news6'); 

    var randomIndex = Math.floor(Math.random() * 4); 
    var newElement = random[randomIndex]; 

     $el.prepend("<tr><td>" + newElement + "</td></tr>").find("tr").first().hide(); 
     $el.find("tr").first().fadeIn(); 
     if ($el.find("tbody tr").length > 20) { 
      $el.find("tbody tr").last().fadeOut(400, function() { 
       $(this).remove(); 
      }); 
     } 

    slimScrollUpdate($el.parents(".scrollable")); 

    setTimeout(function() { 
     randomFeed(); 
    }, 3000); 
} 
+0

撕掉隨機的東西,只是使「randomIndex」增量計數器變量。例如'var notsorandomIndex = 0;'然後'notsorandomIndex ++'某處。 –

+0

你的目標是什麼? '如何將這個隨機結果變成從較低數字開始的序列'是什麼意思? –

回答

0

所以你需要連續的新聞幻燈片,而不是隨機?試試這個(注意全局變量feedIndex

var feedIndex = 0; 

function randomFeed() { 
    var $el = $("#randomFeed"), 
     news = new Array('news1','news2','news3','news4','news5','news6'), 
     newElement = news[feedIndex++ % news.length]; 

    //console.log(newElement); 

    $el.prepend("<tr><td>" + newElement + "</td></tr>").find("tr").first().hide(); 
    $el.find("tr").first().fadeIn(); 
    if ($el.find("tbody tr").length > 20) { 
     $el.find("tbody tr").last().fadeOut(400, function() { 
      $(this).remove(); 
     }); 
    } 

    slimScrollUpdate($el.parents(".scrollable")); 

    setTimeout(function() { 
     randomFeed(); 
    }, 3000); 
} 

順便說一句,這個代碼在它的狀態很不好。它每次都會更改DOM以顯示新的Feed元素。最好渲染所有元素,只有display:none,並且只能切換實際的元素。這是常見的模式

+0

通過嘗試你的我得到了答案。 – user3706926

0

試試這個:

news = new Array('news1','news2','news3','news4','news5','news6') 

// option 1 
news.sort(function() { 
     return .5 - Math.random(); 
    }); 
//news = news1,news2,news3,news6,news4,news5 

//option 2 
len = news.length, 
randomNumber = Math.floor((Math.random() * len) + 0); 
// randomNumber = 3 

part = news.slice(randomNumber, len) 
// part = arrnews6,news4,news5 

請更精確的你有什麼期待/你的目標是什麼!

+0

你可以寫更多的腳本放在那裏。真的,我對JS的知識較少。我曾嘗試過你,但仍然失敗。必須向你學習更多。 – user3706926