Generate permutations of JavaScript array Generate permutations of JavaScript array arrays arrays

Generate permutations of JavaScript array


This function, perm(xs), returns all the permutations of a given array:

function perm(xs) {  let ret = [];  for (let i = 0; i < xs.length; i = i + 1) {    let rest = perm(xs.slice(0, i).concat(xs.slice(i + 1)));    if(!rest.length) {      ret.push([xs[i]])    } else {      for(let j = 0; j < rest.length; j = j + 1) {        ret.push([xs[i]].concat(rest[j]))      }    }  }  return ret;}console.log(perm([1,2,3]).join("\n"));