JavaScript 笛卡尔积算法,可用于商品 SKU 计算

MaxSky 等级 452 1 0

代码示例:https://github.com/maxsky/imitate-tb-combo-select

Demo 演示:https://codepen.io/maxsky/pen/oNLWgNp

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

    return [].reduce.call(array, function (col, set) {
        var res = [];

        col.forEach(function (c) {
            set.forEach(function (s) {
                var t = [].concat(Array.isArray(c) ? c : [c]);
                t.push(s);
                res.push(t);
            })
        });

        return res;
    });
}

console.log(calcDescartes([[1,2,3],['a','b','c']]));

在 Chrome 运行一下:

JavaScript 笛卡尔积算法,可用于商品 SKU 计算

收藏
评论区

相关推荐

教你用200行代码写一个爱豆拼拼乐H5小游戏(附源码)
前言 本文将带大家一步步实现一个H5拼图小游戏,考虑到H5游戏的轻量级和代码体积,我没有使用react或vue这些框架,而采用我自己写的dom库和原生javascript来实现业务功能,具体库代码可见我的文章如何用不到200行代码写一款属于自己的js类库(https://juejin.im/post/6844903880707293198),构建工具我采
What the f*ck JavaScript?
What the fck JavaScript? 一个有趣和棘手的 JavaScript 示例列表。 JavaScript 是一种很好的语言。
笛卡尔乘积的javascript版实现和应用
笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积,又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 。 例子 假设集合A{a, b},集合B{0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。 (https:
卷积神经网络超详细介绍
文章目录 1、卷积神经网络的概念(about:blank1_2) 2、 发展过程(about:blank2__28) 3、如何利用CNN实现图像识别的任务(about:blank3CNN_100) 4、CNN的特征(about:blank4CNN_105)
网络解析(一):LeNet-5详解
网络解析(一):LeNet5详解 摘要 LeNet5出自论文GradientBased Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 网络解析(一):LeNet5详解(https://imghelloworld
巨大提升!更快的 async 函数和 promises
(https://imghelloworld.osscnbeijing.aliyuncs.com/669a1c8f7203559afa4621628303674c.png) 翻译自:Faster async functions and promises(https://v8.dev/blog/fastasync) JavaScript
7个关于"this"面试题,你能回答上来吗?
作者:Shadeed 译者:前端小智 来源:dmitripavlutin 点赞再看,微信搜索【大迁世界(https://mp.weixin.qq.com/s/sY9ufGGKfcdaAQ7KJQs3HA)】,B站关注【前端小智(https://space.bilibili.com/31089477)】这个没有大厂背景,但有着一股向上积
JavaScript中本地存储的方式有哪些?
(https://imghelloworld.osscnbeijing.aliyuncs.com/1f907f0895e2be23aa56604dd42e3626.png) 一、方式 javaScript本地缓存的方法我们主要讲述以下四种: cookie sessionStorage loc
JavaScript 笛卡尔积算法,可用于商品 SKU 计算
代码示例:Demo 演示:jsfunction calcDescartes (array) { if (array.length < 2) return array0 || ; return .reduce.call(array, function (col, set) { var res ;
python刷题-圆的面积
问题描述给定圆的半径r,求圆的面积。 输入格式输入包含一个整数r,表示圆的半径。 输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不
Go 语言开源社区系统 BBS-GO 3.2.6 发布,新增反作弊系统
更新内容 支持开源中国一键登录 反作弊系统 发表内容验证码开关 邮箱验证开关 发表频率控制 新用户观察期 用户禁言 ... 集成nuxtvite 修复积分记录展示错误问题 永久禁言用户积分清零 发布地址 github: https://github.com/mlogclub/bbsgo/releases/tag/v3.2.2 gite
人工智能数学基础-线性代数2:向量的点积、內积、数量积和外积
一、内积 1.1、定义内积(inner product)又称数量积( scalar product)、点积(dot product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算。两个向量a \[a1, a2,…, an\]和b \[b1, b2,…, bn\]的点积定义为: a·ba1b1+a2b2+……+an\bn。使用矩阵乘法并把(
腾云先锋招新啦!!
腾云先锋招新啦!!如果您想结交一群热爱云产品 / 技术,喜欢技术交流的小伙伴;如果您对目前正在使用的腾讯云产品、云服务有更好的建议,但无法直接反馈给产品团队;如果您出现遇到云问题无法及时解决的情况;::: warning 请加入腾云先锋,您的云技术问题和需求将可直接对接到产品团,同时您也可以在这里拓展朋友圈。还可以通过各种方式积累积分,凭积分兑换无门槛代金
腾云先锋招新啦!!
腾云先锋招新啦!!如果您想结交一群热爱云产品 / 技术,喜欢技术交流的小伙伴;如果您对目前正在使用的腾讯云产品、云服务有更好的建议,但无法直接反馈给产品团队;如果您出现遇到云问题无法及时解决的情况;请加入腾云先锋,您的云技术问题和需求将可直接对接到产品团,同时您也可以在这里拓展朋友圈。还可以通过各种方式积累积分,凭积分兑换无门槛代金券(301000 元不等)
腾讯云用户沟通群招新啦!!!
如果您想结交一群热爱云产品 / 技术,喜欢技术交流的小伙伴;如果您对目前正在使用的腾讯云产品、云服务有更好的建议,但无法直接反馈给产品团队;如果您出现遇到腾讯云产品问题无法及时解决的情况;请加入腾云先锋用户沟通群,您的云技术问题和需求将可直接对接到产品团,同时您也可以在这里拓展朋友圈。还可以通过各种方式积累积分,凭积分兑换无门槛代金券(301000 元不等)