jiefancis / blogs

个人博客,学习笔记(issues)
1 stars 0 forks source link

电商SKU组合算法 #18

Open jiefancis opened 3 years ago

jiefancis commented 3 years ago
var type = ["男裤", "女裤"]
var color = ["黑色", "白色"]
var size = ["S", "L"]
var stone = [1, 2, 3]
var a = [4,5,6,7,8]
var list = [type, color, size, stone, a]
console.log(descartes(list))
function descartes(list) {
  return list.slice(1).reduce((p, n) => getCombineList(p, n), list[0])
}
function getCombineList(x, y) {
    const combine = []
    for (let i = 0; i < x.length; i++) {
        for (let j = 0; j < y.length; j++) {
            const result = Array.isArray(x[i]) ? [...x[i], y[j]] : [x[i], y[j]]
            combine.push(result)
        }
    }
    return combine
}