Перестановки в JavaScript?

Я пытаюсь написать функцию, которая делает следующее:

  • принимает массив целых чисел в качестве аргумента (например [1,2,3,4])
  • создает массив всех возможных перестановок [1,2,3,4], причем каждая перестановка имеет длину 4

функция ниже (я нашел это онлайн)делает это, принимая строку в качестве аргумента и возвращая все перестановки этой строки

Я не мог понять, как изменить ее, чтобы она работала с массивом целых чисел, (я думаю это как-то связано с тем, что некоторые методы работают со строками иначе, чем с целыми числами, но я не уверен...)

var permArr = [], usedChars = [];
function permute(input) {
  var i, ch, chars = input.split("");
  for (i = 0; i < chars.length; i++) {
    ch = chars.splice(i, 1);
    usedChars.push(ch);
    if (chars.length == 0)
      permArr[permArr.length] = usedChars.join("");
    permute(chars.join(""));
    chars.splice(i, 0, ch);
    usedChars.pop();
  }
  return permArr
};

Примечание:Я хочу, чтобы функция возвращала массивы из целые числа , не массив из строк .

Мне очень нужно, чтобы решение было на JavaScript. Я уже понял, как это сделать в python

127
задан Nayuki 22 November 2016 в 08:21
поделиться