2017-06-09 72 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)

編輯:不是一班輪

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

當然,只是編輯。 –