当前位置: 首页 - 编程技术 - 文章正文

多个数组组合 每个数组一提取一个元素 sku组合

xiaoqihv

写电商的小伙伴们都会碰到这个需求, 比如一款手机 有 颜色:【红,黑,蓝】;内存:【64G,128G,256G】;网络:【4G,5G】;这时候买个手机就有很多种排列组合了。下面我就分享给大家一个函数

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=\, initial-scale=1.0"> <title>Document</title></head><body> <script> let arr1=[1,2,3,4,5,6]; let arr2=['a','b','c','d','e','f']; let arr3=['A','B','C','D','E','F']; let arr4=['啊','吧','从','的','额','发']; let arr=[arr1,arr2,arr3,arr4]; function calculate(arr){ var len = arr.length; // 当数组大于等于2个的时候 if(len >= 2){ let len1 = arr[0].length; let len2 = arr[1].length; let lenBoth = len1 * len2; let items = new Array(lenBoth); let index = 0; for(let i=0; i<len1; i++){ for(let j=0; j<len2; j++){ if(arr[0][i] instanceof Array){ items[index] = arr[0][i].concat(arr[1][j]); }else{ items[index] = [arr[0][i]].concat(arr[1][j]); } index++; } } let newArr = new Array(len -1); for(let i=2;i<arr.length;i++){ newArr[i-1] = arr[i]; } newArr[0] = items; return calculate(newArr); }else{ return arr[0]; } } console.log(calculate(arr)); </script></body></html>

得到的数据是这样的

文章地址:https://wenmayi.cn/post/425.html