2017-06-09 10 views
-1

私はlodashをsortByインデックスに使用していますが、同じインデックスを持つアイテムのうち、ソートは常に同じになります。インデックスが同一であれば、順序がランダムであることを確認するにはどうすればよいですか?JavaScriptをインデックス順にソートしてランダムに表示しますか?

これは私が現在持っているものです。

chosen = _.sortBy(chosen, function(v) { 
     return v.index; 
    }); 
+0

よくラウンドがランダムではありません – epascarello

答えて

1

vanillJS/ES6ワンライナー:

var arr = [{index:5,v:1},{index:3,v:3},{index:3,v:6},{index:1,v:3},{index:3,v:7}] 
 
arr = arr.sort((i1,i2)=>i1.index==i2.index?Math.random()-0.5:i1.index-i2.index) 
 
console.log(arr)

EDIT:ない - ワンライナー

var arr = [{index:5,v:1},{index:3,v:3},{index:3,v:6},{index:1,v:3},{index:3,v:7}] 
 
arr = arr.sort(function(i1,i2){ 
 
    if (i1.index == i2.index) return Math.random()-0.5; 
 
    else return i1.index-i2.index; 
 
}) 
 
console.log(arr)

+0

1行にすることはできませんか?理解するのは少し難しいです。ありがとう。 – Harry

+0

もちろん、編集したばかりです。 –

関連する問題