在开发商品发布的时候遇到一个需要求n个数组所有组合的问题,具体为商品的属性为一个数组,属性的会有不同,每个属性的属性值也不同,可能是0~N个。

举个例子:假设进了一批手机,手机的属性如下所示:

运行内存:2G、3G、4G、6G

内存:32G、64G、128G、256G

颜色:黑色、红色、白色

如果用户勾选了运行内存  2G 4G  ,内存32G 、64G、256G,颜色:黑色,红色。

那么这个商品理论上会有2*3*2=12种情况。然后分别对这12种录入价格,库存等。

现在核心编码问题就是求[2G,4G]   [32G,64G,256G]  [黑色,红色]的全排列。这个就像乘法分配律的展开式,先求前两项的展开,形成新因子于后面项展开。转化为代码可以是

const textArr=[['a','b','c'],['d','e','f','g'],['h','i']] const getCombination=(array)=>{let resultArry=[];array.forEach((arrItem)=>{if(resultArry.length===0){resultArry=arrItem}else{const emptyArray=[];resultArry.forEach((item)=>{arrItem.forEach((value)=>{emptyArray.push([...item,value])})    })resultArry=emptyArray}});return resultArry;}console.log(getCombination(textArr))

实际运用效果,勾选商品属性后,会自动生成所有组合的商品

js求N个数组所有组合相关推荐

  1. JS求多个数组的重复数据

    今天朋友问了我这个问题:JS求多个数组的重复数据 注: 1.更准确的说是只要多个数组中有两个以上的重复数据,那么这个数据就是我需要的 2.单个数组内的数据不存在重复值(当然如果有的话,你可以去重) 3 ...

  2. js中多个数组排列组合

    以项目中用到的数组排列组合为例,下图是最后的效果图(图只是用来说明并不具体实现): 数据\color{#ed1941}{数据}数据 data() {return {arr: [[{ name: &qu ...

  3. LeetCode:求一个整形数组中组合的最大数

    给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之 组成一个最大的整数.注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数.示例 1: Input:nums=[10 ...

  4. js数组随机排列组合

    js数组随机排列组合 function combine(i, results, res) {//排列组合var wordList = [[1,2],[3,4]]if(wordList.length = ...

  5. js中对arry数组的各种操作小结

    最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊,为了在以后的工作中写出最优化的代码,我 ...

  6. C++实现求字符串的所有的组合

    参考:http://www.xuebuyuan.com/600583.html http://blog.csdn.net/hackbuteer1/article/details/7462447 htt ...

  7. 数组排列组合算法汇总

    求数组全排列(不包含或者包含重复元素) 求数组所有组合(相当于求集合的所有子集,不包含或者包含重复元素) 从n个数中选择k个的组合(不包含重复元素) 从n个数中选择k个的组合(包含重复元素) [版权声 ...

  8. C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  9. 总结JS中常用的数组的方法大全

    总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...

最新文章

  1. python英文单词-python常用150个英文单词
  2. 机器学习Sklearn实战——梯度提升树二分类原理
  3. ITK:计算和显示图像的梯度
  4. uva12099 Bookcase ACM NWERC
  5. NYOJ_37_回文字符串
  6. 吴恩达神经网络1-2-2_图神经网络进行药物发现-第1部分
  7. I-EIM分享一套局域网通讯源码
  8. 商务办公管理咨询服务响应式模板
  9. 7-17 航空公司VIP客户查询 (10 分)
  10. Windows和Linux DNS Cache清理
  11. 公共关系学试题与参考答案
  12. Ucinet6 + Netdraw 根据excel文件绘制网络拓扑图
  13. qca9535 tftp32 刷机_【U-Boot】U-Boot 刷机方法大全
  14. 基于微信校园二手书交易小程序系统 毕业设计毕设参考
  15. ubuntu20.04 合并两个磁盘
  16. Openlayers 自定义气泡框以及定位到气泡框
  17. 学校机房网上作业发放、提交系统案例
  18. js开发实例 —— 5秒自动关闭广告倒计时
  19. xpath解析最全攻略
  20. java dsa算法_DSA算法

热门文章

  1. 如何应用设计模式设计你的足球引擎(第三、四部分)完
  2. Other -- Winzip和Winrar命令行的使用
  3. TDW(Tencent Data Warehouse)之hive简介
  4. 电子工程可以报考二建_全国二建报名时间最全统计:2020年二建不到30天就可以报考...
  5. 幼儿园装备论文计算机网络,幼儿园计算机教学论文
  6. Element UI 按钮点击后不失焦,按钮颜色改变问题
  7. iOS6Passbook入门1/2
  8. 基于ABAQUS二次开发的仿真分析平台
  9. SoC EDS 17.0 和 DS-5 下载和安装
  10. win10 无限闪屏闪桌面