首页 >web前端 >js教程 >如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?

如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?

DDD
DDD原创
2024-11-03 16:19:02760浏览

How to Generate All Combinations (Cartesian Product) of Values from JavaScript Arrays?

查找 JavaScript 数组值的所有组合(笛卡尔积)

在 JavaScript 中从多个数组生成值的所有组合可以通过以下方式实现:笛卡尔积的概念。实现方法如下:

笛卡尔积的递归


要生成所有组合,我们可以使用迭代的递归函数每个数组并组合所有数组中的元素。

以下是查找多个数组的笛卡尔积的递归函数示例:



function allPossibleCases(arr) {
if (arr.length == 1) {
return arr[0];

} else {

var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var i = 0; i < allCasesOfRest.length; i++) {
  for (var j = 0; j < arr[0].length; j++) {
    result.push(arr[0][j] + allCasesOfRest[i]);
  }
}
return result;

}
}



使用示例


假设您有三个数组:

var 第二 = ['c'],<br>var 第三 = ['d', 'e', 'f'];

使用 allPossibleCases 函数,您可以生成所有组合,如下所示:




var allArrays = [第一、第二、第三];<br>console.log(allPossibleCases(allArrays));



这将输出以下组合:

acd
ace
acf
bcd
bce
bcf
azd
aze
azf
bzd
bze
bzf

注意:每个组合中元素的顺序可能会根据 allArrays 变量中数组的顺序而有所不同。

以上是如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript Array if for using class Length var JS console function this
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:How Can I Dynamically Insert HTML Content into My React Component?下一篇:How to Distinguish Between Browser Refresh and Closure Using HTML5 Local Storage?

相关文章

查看更多