let skuList = [ ['黑色', '白色','黃色'], ['64G', '128G', '512G'], ]
[ ["黑色", "64G"] ["黑色", "128G"] ["黑色", "512G"] ["白色", "64G"] ["白色", "128G"] ["白色", "512G"] ["黃色", "64G"] ["黃色", "128G"] ["黃色", "512G"] ]
function eachArr(arr1,arr2){ return arr1.map(function(item1){ return arr2.map(function(item2){ return item1 instanceof Array ? item1.concat(item2):[item1,item2]; }) }).reduce( function(accumulator, currentValue){ return accumulator.concat(currentValue) }) } [['黑色', '白色','黃色'], ['64G', '128G', '512G'],].reduce(function(accumulator, currentValue){ return eachArr(accumulator,currentValue) })
例如:
[ ['黑色', '白色','黃色'], ['64G', '128G', '512G'],['大', '中', '小'],.......].reduce(function(accumulator, currentValue){ return eachArr(accumulator,currentValue) }) 返回值是 ["黑色", "64G", "大"] ["黑色", "64G", "中"] ["黑色", "64G", "小"] ["黑色", "128G", "大"] ["黑色", "128G", "中"] ["黑色", "128G", "小"] ["黑色", "512G", "大"] ["黑色", "512G", "中"] ["黑色", "512G", "小"] ["白色", "64G", "大"] ["白色", "64G", "中"] ["白色", "64G", "小"] ["白色", "128G", "大"] ["白色", "128G", "中"] ["白色", "128G", "小"] ["白色", "512G", "大"] ["白色", "512G", "中"] ["白色", "512G", "小"] ["黃色", "64G", "大"] ["黃色", "64G", "中"] ["黃色", "64G", "小"] ["黃色", "128G", "大"] ["黃色", "128G", "中"] ["黃色", "128G", "小"] ["黃色", "512G", "大"] ["黃色", "512G", "中"] ["黃色", "512G", "小"]
##### 整體實現思路就是二維數組裏的第一個數組與後一個數組組合。而後組合後的數組,再與後一個數組組合。依次累計組合就能夠了。美滋滋。吃了一頓蜜汁雞。數組
這是這是簡單的實現一種方式,若是要加上其餘業務或是功能能夠再eachArr裏面區改動。 如要幫忙改動的,能夠留言哦。