2012-04-20 83 views
2

我有這樣的代碼:如何將字符串分割成數組,隨機jQuery中

var str = 'one, two, three'; 
var substr = str.split(', '); 

,將創建爲我們所期待的陣列。但是有沒有辦法拆分這些單詞,將它們混合後插入到substr數組中? 謝謝

+0

您可以將它們拆分成一個數組,然後使用'[] .sort()'方法對它們進行隨機排序。 – 2012-04-20 19:05:29

回答

8

原生sort()函數可以獲取函數作爲參數,讓您決定如何對數組進行排序。

所以你可以給它一個函數來產生隨機結果。

var str = 'one, two, three'; 
var substr = str.split(', '); 

substr.sort(function() { 
    return(parseInt(Math.random()*10) %2); 
}); 
1

我大部分得到了相同的答案keune,只是一些風格差異:)

var random_results = 'one, two, three'. 
         split(/\s*,\s*/). 
         sort(function(){ 
          return (-1 + Math.floor((Math.random() * 3))) 
         }) 
  • 我改變您的明確 '' 分流到正則表達式。如果你打算只匹配那個特定的子字符串,那很好,但是如果你正在處理用戶輸入,可以很方便地編寫你的分割,這樣你就可以在逗號前面或後面處理空格的存在,並讓它們由split功能。
  • keune和我都爲我們的sort()函數計算不同的返回值。兩者都提供隨機結果;只要你返回一個可能是負數或正數的隨機整數值,你可以得到你的混洗數組。

此外,作爲次要樣式,這與JQuery無關。這是純粹的JavaScript。