当前位置: 首页 > 面试题库 >

JavaScript中多个数组的笛卡尔积

丁兴德
2023-03-14
问题内容

您将如何在JavaScript中实现多个数组的笛卡尔积?

举个例子,

cartesian([1, 2], [10, 20], [100, 200, 300])

应该回来

[
  [1, 10, 100],
  [1, 10, 200],
  [1, 10, 300],
  [2, 10, 100],
  [2, 10, 200]
  ...
]

问题答案:

这是使用和提供的解决问题的功能解决方案(没有任何 可变变量 !),该提供者为:reduce``flatten``underscore.js

function cartesianProductOf() {

    return _.reduce(arguments, function(a, b) {

        return _.flatten(_.map(a, function(x) {

            return _.map(b, function(y) {

                return x.concat([y]);

            });

        }), true);

    }, [ [] ]);

}



// [[1,3,"a"],[1,3,"b"],[1,4,"a"],[1,4,"b"],[2,3,"a"],[2,3,"b"],[2,4,"a"],[2,4,"b"]]

console.log(cartesianProductOf([1, 2], [3, 4], ['a']));


<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"></script>


 类似资料:
  • 问题内容: 在Tensorflow中有什么简单的方法可以像itertools.product一样做笛卡尔积吗?我想获得两个张量(和)的元素组合,在Python中可以通过itertools作为。我正在Tensorflow中寻找替代方案。 问题答案: 我将在此假定和均为一维张量。 为了得到两者的笛卡尔积,我会用的组合和: 您使用LEN(一) LEN(B) 2张量,其中的元件的每个组合结束并且在最后一维

  • 现在有这几个数据 要转换成

  • 问题内容: 以下代码适用于,它是否也返回重复的笛卡尔积,如果是,如何获得唯一的笛卡尔积? 当我传递包含列表的列表时,这似乎也不起作用 问题答案: 要仅获取唯一元素,可以使用这样的set表示法( 注意: 这不能保证顺序) 或根据Paul Draper的评论,我们可以像这样 如果您也想维护订单 要使您的程序可以使用列表列表,只需将函数声明从 至

  • 假设我有几个,我会将它们放入另一个列表或其他集合中,所以在调用之前,我不知道我有多少个 应该是:

  • 问题内容: 我有两个pandas数据框: 获得其笛卡尔积的最佳实践是什么(当然不用像我这样明确地编写它)? 问题答案: 如果每行都有一个重复的键,则可以使用merge生成笛卡尔乘积(就像在SQL中一样)。 输出:

  • 问题内容: 在学习了循环,数组,方法之后,…我开始玩图形游戏,但是遇到了一些问题。看到此示例时,我正在寻找一些示例:http : //javaceda.blogspot.ch/2010/06/draw- cartesian-coordinate-system-in.html 它提供了Java中笛卡尔平面的示例。我几乎可以理解该代码的所有内容(除了一些行,例如invokelater,SwingUti