Я пытаюсь написать функцию, которая делает следующее:
- принимает массив целых чисел в качестве аргумента (например, [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