zip两个数组Javascript

时间:2013-05-31 07:36:25

标签: javascript arrays

我在javascript中有两个数组:

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

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

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

有什么办法吗?

3 个答案:

答案 0 :(得分:6)

您可以尝试使用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;
}

答案 1 :(得分:6)

一个简单的循环会这样做吗?

array3 = new Array();

for(var i = 0; i < array1.length; i++)
{
    array3.push(array1[i]);
    array3.push(array2[i]);
}

答案 2 :(得分: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