实现:
function getResult(arr,resArr,itemArr) {//全排列 一个数组 //arr 要全排列的数组 resArr = resArr||[];//存放所有结果的数组 itemArr = itemArr||[];//存放单个结果的数组 for (var i = 0; i < arr.length; i++) { var ele = arr.splice(i, 1)[0];//得到元素 itemArr.push(ele); if (arr.length == 0) { resArr.push(itemArr.slice());//生成新数组,把这个结果插入进去 }else{ getResult(arr,resArr,itemArr) } itemArr.pop(); arr.splice(i, 0,ele);// 把这个位置上的元素还原 } return resArr; }使用:
var res = getResult([1,2,3]); console.log(res);结果:
[ [ 1, 2, 3 ], [ 1, 3, 2 ], [ 2, 1, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ], [ 3, 2, 1 ] ]转载于:https://www.cnblogs.com/zhaolihang/p/5258996.html
相关资源:数据结构—成绩单生成器