2

私はこのコードを持っています:

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

これにより、期待どおりに配列が作成されます。しかし、単語を分割してシャッフルし、substr 配列に挿入する方法はありますか? ありがとう

4

2 に答える 2

8

ネイティブの sort() 関数は、関数をパラメーターとして取得して、配列をソートする方法を決定できます。

したがって、ランダムな結果を生成する関数を与えることができます。

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

substr.sort(function () {
    return( parseInt( Math.random()*10 ) %2 );
});
于 2012-04-20T19:09:45.160 に答える
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です。

于 2012-04-20T19:22:08.963 に答える