JavaScript陣列元素全排列

admin發表於2018-07-12

在給出程式碼之前,下面先介紹一下全排列的概念是什麼:

從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。

當m=n時所有的排列情況叫全排列。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function permute(input) {
  var permArr = [],
  usedChars = [];
  function main(input){
    var i, ch;
    for (i = 0; i < input.length; i++) {
      ch = input.splice(i, 1)[0];
      usedChars.push(ch);
      if (input.length == 0) {
        permArr.push(usedChars.slice());
      }
      main(input);
      input.splice(i, 0, ch);
      usedChars.pop();
    }
    return permArr
  }
  return main(input);
};
console.log(permute([5, 3, 7, 1]));

相關文章