私はlodashをsortByインデックスに使用していますが、同じインデックスを持つアイテムのうち、ソートは常に同じになります。インデックスが同一であれば、順序がランダムであることを確認するにはどうすればよいですか?JavaScriptをインデックス順にソートしてランダムに表示しますか?
これは私が現在持っているものです。
chosen = _.sortBy(chosen, function(v) {
return v.index;
});
私はlodashをsortByインデックスに使用していますが、同じインデックスを持つアイテムのうち、ソートは常に同じになります。インデックスが同一であれば、順序がランダムであることを確認するにはどうすればよいですか?JavaScriptをインデックス順にソートしてランダムに表示しますか?
これは私が現在持っているものです。
chosen = _.sortBy(chosen, function(v) {
return v.index;
});
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)
1行にすることはできませんか?理解するのは少し難しいです。ありがとう。 – Harry
もちろん、編集したばかりです。 –
よくラウンドがランダムではありません – epascarello