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