如何以各种可能的方式安排数组中的项目?

时间:2017-12-02 03:48:52

标签: javascript arrays

数组中的项目可以使用JavaScript中的sort()方法按升序排列,但如何以所有可能的方式排列它们并在我们的网页中显示它们。

1 个答案:

答案 0 :(得分:1)

您描述了排列,实现它的一种方法:

function permutations(arr, r=[]) {
  if (arr.length === 0) {
    console.log(r)
  } else {
    const first = arr[0]
    for (let i = 0; i <= r.length; i++) {
      permutations(arr.slice(1), r.slice(0, i).concat([first]).concat(r.slice(i)))
    }
  }
}

permutations([1, 2, 3])

<强>输出

[ 3, 2, 1 ]
[ 2, 3, 1 ]
[ 2, 1, 3 ]
[ 3, 1, 2 ]
[ 1, 3, 2 ]
[ 1, 2, 3 ]