笛卡尔积js(实现方式一)

3,497 阅读1分钟

笛卡尔乘积是指在数学中,两个集合XY的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员

通常是两个集合中的所有可能子集

var descartFn = function(nums) {
	return nums.reduce((a, b)=> {
		let m = a.map(item=> b.map(i=> [i].concat(item)))
		return  m.reduce((c, d)=> c.concat(d), [])
	})
}
descartFn([[1,5],[2,3]])