1

我在javascript中有两个数组:

var array1 = ["a","b","c"];
var array2 = ["e","f","g"];

我希望得到的数组是这样的:

array3 = ["a","e","b","f","c","g"];

有什么办法可以做到这一点?

4

3 回答 3

6

一个简单的循环会做到吗?

array3 = new Array();

for(var i = 0; i < array1.length; i++)
{
    array3.push(array1[i]);
    array3.push(array2[i]);
}
于 2013-05-31T07:39:10.743 回答
4

您可以尝试使用concat()方法:

var array1 = ["a","b","c"];
var array2 = ["e", "f","g"];

var array3 = array1.concat(array2); // Merges both arrays

对于您的特定要求,您必须遵循以下要求:

function mergeArrays(a, b){
    var ret = [];

    for(var i = 0; i < a.length; i++){
        ret.push(a[i]);
        ret.push(b[i]);
    }
    return ret;
}
于 2013-05-31T07:39:00.343 回答
2

这应该有效:

function zip(source1, source2){
    var result=[];
    source1.forEach(function(o,i){
       result.push(o);
       result.push(source2[i]);
    });
    return result
}

http://jsfiddle.net/FGeXk/

这不是串联,所以答案改变了。

也许您想使用:http ://underscorejs.org/#zip

于 2013-05-31T07:39:05.253 回答