var arr = [
{name: '头不动', id: '1'},
{name: '2', id: '2'},
{name: '不动', id: '3'},
{name: '4', id: '4'},
{name: '5', id: '5'},
{name: '尾巴不动', id: '6'
}]
请问下想让id为2、4、5 随机排序有什么好办法吗?剩下元素位置不变
我想的是先把要排序的内容单独存入一个数组,然后记一个原始index,然后随机排,然后再记录一个目标index,然后再去原始数组里根据这2个index去做交换,感觉好复杂·有木有啥偷懒点的方法呢
const randomSort = (arr) => {
let i = arr.length
while (i) {
let j = Math.floor(Math.random() * i--);
[arr[j], arr[i]] = [arr[i], arr[j]]
}
return arr
}