根據屬性值建立sku資料
阿新 • • 發佈:2022-06-01
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> let data = [[1, 2], [5, 6, 8], [10]] // 根據屬性值id建立sku function setSku(data) { const result = Array.prototype.reduce.call( data, function (a, b) { let sku = [] a.forEach(function (valueA) { b.forEach(function (valueB) { sku.push(valueA.concat([valueB])) }) }) return sku }, [[]] ) return result } // 分開設定 let result = setSku(data) const newData = [[1, 2], [5, 6, 8], [11]] const newRes = setSku(newData) subRes = result.concat(newRes) // 合併設定 let totalData = [ [1, 2], [5, 6, 8], [10, 11], ] const totalRes = setSku(totalData) // 複製防止改變原陣列 let cpSub = subRes.concat() let copyTotal = totalRes.concat() cpSub[0].forEach((item, index) => { cpSub.sort((a, b) => { return a[index] - b[index] }) }) copyTotal[0].forEach((item, index) => { copyTotal.sort((a, b) => { return a[index] - b[index] }) }) console.log(totalRes, copyTotal) // 判斷結果,為相同 let isSame = cpSub.toString() === copyTotal.toString() console.log(isSame) </script> </body> </html>