JavaScripts之迪卡算法求积(n*n)适用于SKU信息计算等场景


迪卡算法求积(n * n)

var arr = [
  ['黑色', '白色', '蓝色'], 
  ['1.2KG', '2.0KG', '3.0KG'],
  ['a', 'b'],
  ['aa', 'bb']
];

function descartes(array){
    if( array.length < 2 ) return array[0] || [];

    return array.reduce((pre, cur, index) => {
        if(index === 0) {
            return cur
        }
        const _sku = []
        pre.forEach(c => {
            cur.forEach(item => {
                _sku.push(`${c}:${item}`)
            })
        })
        console.log(_sku)
        return _sku
    }, [])
}

console.log(descartes(arr));

相关