javascript按索引排序然后随机?

时间:2017-06-09 15:48:01

标签: javascript sorting lodash shuffle

我正在使用lodash来对sortBy进行索引,但在具有相同索引的项目中,排序总是相同的。如果索引相同,如何确保排序是随机的?

这就是我目前的情况:

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

1 个答案:

答案 0 :(得分:1)

vanillJS / ES6 one-liner:

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)