多值排序算法

一、測試用例

用例一
入參:[[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;
	},[])
}

三、使用場景:表格數據按多個值進行排序

四、其他方法,也可以通過先生成樹形結構再遍歷樹的方法生成排序數組

五、算法思路:排列組合,遞歸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章