在 JavaScript 中实现多个数组的笛卡尔积
多个数组的笛卡尔积包含输入数组中元素的每种可能的组合。此操作对于从一组数据生成所有可能的组合或排列至关重要。
1 行答案 (ES2020)
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
解释
笛卡尔积的计算公式如下方式:
示例
到将笛卡尔积应用于具有值的数组,请考虑以下内容示例:
const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
预期输出为:
[ [1, 10, 100], [1, 10, 200], [1, 10, 300], [1, 20, 100], [1, 20, 200], [1, 20, 300], [2, 10, 100], [2, 10, 200], [2, 10, 300], [2, 20, 100], [2, 20, 200], [2, 20, 300], ]
这演示了对给定数组中元素的所有可能组合的计算,从而产生完整的笛卡尔积。
以上是如何在 JavaScript 中高效计算多个数组的笛卡尔积?的详细内容。更多信息请关注PHP中文网其他相关文章!