如何在javascript中混洗一组对象?

Arn*_*rne 2 javascript arrays shuffle

下面的代码适用于普通数组,但不适用于带有对象的数组,有人知道怎么做吗?

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function shuffle(array) {
  for (let i = array.length - 1; i > 0; i--) {
    let j = Math.floor(Math.random() * (i + 1));
    let temp = array[i];
    array[i] = array[j];
    array[j] = temp;
  }
  return array;
}

const result = shuffle(array);

console.log(JSON.stringify(result));
Run Code Online (Sandbox Code Playgroud)

Koo*_*Inc 18

尝试像这个片段一样排序:

console.log( [
    { some: 1 },
    { some: 2 },
    { some: 3 },
    { some: 4 },
    { some: 5 },
    { some: 6 },
    { some: 7 },
  ]
  .sort( () => Math.random() - 0.5) );
Run Code Online (Sandbox Code Playgroud)

  • 其他人指出,这种解决方案(虽然可爱且足以用于某些用途)不是很随意:/sf/answers/1305511861/ (2认同)