zoukankan      html  css  js  c++  java
  • Javascript实现笛卡儿积算法

    在根据商品属性计算SKU时,通常会对商品不同选项的不同属性进行笛卡儿积运算。

    这是在NodeJs里的实现版本,目前用在生产环境。

     1 function cartesian(elements) {
     2     if (!Array.isArray(elements))
     3         throw new TypeError();
     4     var end = elements.length - 1,
     5         result = [];
     6 
     7     function addTo(curr, start) {
     8         var first = elements[start],
     9             last = (start === end);
    10         for (var i = 0; i < first.length; ++i) {
    11             var copy = curr.slice();
    12             copy.push(first[i]);
    13             if (last) {
    14                 result.push(copy);
    15             } else {
    16                 addTo(copy, start + 1);
    17             }
    18         }
    19     }
    20 
    21     if (elements.length)
    22         addTo([], 0);
    23     else
    24         result.push([]);
    25     return result;
    26 }

    运行demo:

  • 相关阅读:
    简单状态机
    c语言状态机
    存储公司
    正确跑步
    好好做自己能做的
    I2C学习
    es6 generator函数
    es6 for of 循环
    es6 proxy代理
    es6 Symbol类型
  • 原文地址:https://www.cnblogs.com/xidu/p/5981491.html
Copyright © 2011-2022 走看看