我的目标是以所有可能的方式合并 2 个数组,第一个数组将始终是单元格的第一部分,第二个数组将始终位于单元格的第二部分。
我的最后一次尝试,这是最接近但不完全是我需要的:
function combineArrays(array1, array2) {
let arr = [];
for (let i = 0; i < array1.length; i++) {
arr[i] = array1[i];
}
for (let i = 0, j = 0; i < array1.length; i++) {
arr[i] += array2[j];
if (array2[j + 1]) {
j++;
}
else {
j = 0;
}
}
return arr;
}
编辑:
例如数组A和数组B:
A:[“我”、“你”、“他”、“她”]
B:["is","is","is"]
预期结果:
[
“我是”,“你是”,“他是”,“她是”,
“我是”,“你是”,“他是”,“她是”,
“我是”,“你是”,“他是”,“她是”
]
最佳答案
let a = ["I", "You", "He", "She"];
let b = ["am", "is", "are"];
let result = b.map(b => a.map(a => a + ' ' + b));
console.log(result);
如果您不想要嵌套数组:
let a = ["I", "You", "He", "She"];
let b = ["am", "is", "are"];
let result = b.reduce((arr, b) => arr.concat(a.map(a => a + ' ' + b)), []);
console.log(result);
对于 n
个数组:
let a = ["I", "You", "He", "She"];
let b = ["am", "is", "are"];
let c = ["good", "bad", "happy"];
let crossProduct = (a, b) => b.reduce((arr, b) => arr.concat(a.map(a => a + ' ' + b)), []);
let result = [a, b, c].reduce(crossProduct);
console.log(result);
关于javascript - 在 JavaScript 中以所有可能的方式将 2 个数组合并为 1 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44911991/