一、測試用例
用例一
入參:[[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;
},[])
}
三、使用場景:表格數據按多個值進行排序
四、其他方法,也可以通過先生成樹形結構再遍歷樹的方法生成排序數組
五、算法思路:排列組合,遞歸