一、测试用例
用例一
入参:[[1,2],[3,4],[5,6]]
出参:
[1, 3, 5]
[1, 3, 6]
[1, 4, 5]
[1, 4, 6]
[2, 3, 5]
[2, 3, 6]
[2, 4, 5]
[2, 4, 6]
用例二
入参:[[‘红色’,‘白色’],[‘1.7米’,‘1.8米’],[‘男性’,‘女性’]]
出参:
[“红色”, “1.7米”, “男性”]
[“红色”, “1.7米”, “女性”]
[“红色”, “1.8米”, “男性”]
[“红色”, “1.8米”, “女性”]
[“白色”, “1.7米”, “男性”]
[“白色”, “1.7米”, “女性”]
[“白色”, “1.8米”, “男性”]
[“白色”, “1.8米”, “女性”]
二、排序函数
function flap(values){
var head = values.shift();
if(values.length == 0){
return head.map(ele=>[ele]);
}
var tail = flap(values);
return head.reduce((prev,cur)=>{
prev = [...prev,...tail.map(items=>[cur,...items])]
return prev;
},[])
}
三、使用场景:表格数据按多个值进行排序
四、其他方法,也可以通过先生成树形结构再遍历树的方法生成排序数组
五、算法思路:排列组合,递归