1/**2* @param {number[]} nums3* @return {number[][]}4*/5var permute = function (nums) {6const result = [];7const backtrack = (nums, path) => {8if (nums.length === 0) {9result.push(path);10return;11}12for (let i = 0; i < nums.length; i++) {13backtrack(14[...nums.slice(0, i), ...nums.slice(i + 1)],15[...path, nums[i]]16);17}18};19backtrack(nums, []);20return result;21};