function swap(a, i, j) {
if (i != j) {
var temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
function show(a) {
document.write(a + "<br />");
}
function perm(a) {
(function fn(n) { //为第n个位置选择元素
for (let i = n; i < a.length; i++) {
swap(a, i, n);
if (n + 1 < a.length - 1) //判断数组中剩余的待全排列的元素是否大于1个
fn(n + 1); //从第n+1个下标进行全排列
else
show(a); //显示一组结果
swap(a, i, n);
}
})(0);
}
perm([1,1,1])