zip两个数组Javascript

zip two arrays Javascript

本问题已经有最佳答案,请猛点这里访问。

我有两个javascript数组:

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

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

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

有什么办法吗?


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

1
2
3
4
5
6
7
array3 = new Array();

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


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

1
2
3
4
var array1 = ["a","b","c"];
var array2 = ["e","f","g"];

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

对于您的具体要求,您必须遵循以下要求:

1
2
3
4
5
6
7
8
9
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
2
3
4
5
6
7
8
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://underlinejs.org/zip