js将n数组逐个交叉合并并生成N个不同的新数组
时间: 2024-12-11 12:23:42 浏览: 40
在JavaScript中,你可以使用`Array.from()`配合嵌套循环来实现这个任务。假设你有一个名为`arrays`的二维数组,你想将每个子数组与其他所有子数组进行交叉合并,生成N*(N-1)/2个不同的新数组。这是一个示例代码:
```javascript
function crossCombine(arrays) {
const n = arrays.length;
let result = [];
// 遍历所有数组对
for (let i = 0; i < n; i++) {
for (let j = i + 1; j < n; j++) {
// 将两个数组交替合并
const combined = [];
for (let k = 0; k < Math.min(arrays[i].length, arrays[j].length); k++) {
combined.push(arrays[i][k], arrays[j][k]);
}
if (combined.length !== arrays[i].length + arrays[j].length) {
// 如果不是完全合并,用剩余元素填充
combined.push(...arrays[i].slice(k), ...arrays[j].slice(k));
}
result.push(combined);
}
}
return result;
}
// 示例输入
const arrays = [[1, 2, 3], [4, 5], [6, 7, 8, 9]];
console.log(crossCombine(arrays));
// 输出:[[1, 4, 6], [1, 4, 7], [1, 4, 8], [1, 4, 9], ..., [9, 2], [9, 3]]
阅读全文
相关推荐










