在JavaScript中以各种可能的方式将2个数组组合成1个

在JavaScript中以各种可能的方式将2个数组组合成1个,javascript,Javascript,我的目标是以所有可能的方式合并两个数组,第一个数组始终是单元格的第一部分,第二个数组始终是单元格的第二部分。 我的最后一次尝试,这是最接近但不完全是我需要的: 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

我的目标是以所有可能的方式合并两个数组,第一个数组始终是单元格的第一部分,第二个数组始终是单元格的第二部分。 我的最后一次尝试,这是最接近但不完全是我需要的:

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: 答:[我、你、他、她] B:[上午、是、是]

预期结果: [ 我是,你是,他是,她是, 我是,你是,他是,她是, 我是,你是,他是,她是 ]

但您似乎希望对实现的数组求和,如下所示:

var array1 = [1,2,3,4];
var array2 = [5,6,7,8];

var sum = array1.map(function (num, idx) {
  return num + array2[idx];
}); 
// [6,8,10,12]

如果您的目标是合并两个阵列,以下是ES6方法:

const arr1 = ['a', 'b', 'c'];
const arr2 = ['d', 'e', 'f'];

const arr3 = [...arr1, ...arr2]; // Output: [ "a", "b", "c", "d", "e", "f" ]
但是,在你的情况下,在你的编辑后,你想做更多

const arr1 = [ "I", "You", "He", "She" ];
const arr2 = [ "am", "is", "are" ];

arr2.map(eltB => arr1.map(eltA => `${eltA} ${eltB}`))
    .reduce((newArray, arr) => newArray.concat(arr), []);
让a=[我,你,他,她]; 设b=[am,is,are]; 让result=b.mapb=>a.mapa=>a+''+b;
console.logresult;不确定您需要什么,请发布array1、array2和预期输出的示例。您的代码并不是真正合并数组,而是通过索引将它们相加。这不是合并,这是两个数组的组合。第二个非常完美!还有,我怎样才能对X数量的数组执行相同的操作?@avi12,我更新了答案,你所要做的就是把数组放进去,再也找不到更好的答案了!我对你感激不尽:谢谢!另外,如何对X数量的阵列执行相同的操作?
const arr1 = [ "I", "You", "He", "She" ];
const arr2 = [ "am", "is", "are" ];

arr2.map(eltB => arr1.map(eltA => `${eltA} ${eltB}`))
    .reduce((newArray, arr) => newArray.concat(arr), []);