JavaScript 数组值的笛卡尔积
问题:
给定任意数量的 JavaScript不同长度的数组,确定其值的所有组合(笛卡尔积)。
解决方案:
可以使用递归有效地解决此任务。它涉及迭代每个数组并将其值与剩余数组的所有可能组合进行组合。
考虑以下实现:
function allPossibleCases(arr) { if (arr.length === 1) { return arr[0]; } else { const result = []; const casesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of arr casesOfRest.forEach((c) => { for (let i = 0; i < arr[0].length; i++) { result.push(arr[0][i] + c); } }); return result; } }
用法:
var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']]; var results = allPossibleCases(allArrays); // outputs ["acd", "bcd", "azd", ...]
说明:
以上是如何生成 JavaScript 数组中值的所有组合(笛卡尔积)?的详细内容。更多信息请关注PHP中文网其他相关文章!