Javascript 按给定顺序混合两个数组

Javascript 按给定顺序混合两个数组,javascript,arrays,sorting,merge,concatenation,Javascript,Arrays,Sorting,Merge,Concatenation,javascript有内置的方法吗?是否可以按相同的顺序合并/组合两个数组?这基本上是一项简单的任务,可以通过迭代两个数组的最小长度并将每个值添加到新数组中来解决: var a = [1, 2, 3] var b = [4, 5, 6] var c = [] for (var i = 0; i < 3; i++) { c.push(a[i]) c.push(b[i]) } // => [1, 4, 2, 5, 3, 6] 更具体地说,这些数组可以包含字符串和数字 var

javascript有内置的方法吗?是否可以按相同的顺序合并/组合两个数组?这基本上是一项简单的任务,可以通过迭代两个数组的最小长度并将每个值添加到新数组中来解决:

var a = [1, 2, 3]
var b = [4, 5, 6]
var c = []

for (var i = 0; i < 3; i++) {
  c.push(a[i])
  c.push(b[i])
}

// => [1, 4, 2, 5, 3, 6]
更具体地说,这些数组可以包含
字符串
数字

var a = [0, '1', 'c']
var b = ['d', 4, 'f']
var c = [0, 'd', '1', 4, 'c', 'f']
有什么想法或想法吗

更新

只是忘了注意输入数组可能不止两个。我真的很喜欢这样做,因为重复问题中的答案使用了难看的嵌套循环,我认为reduce可能会有所帮助

更新2

将字符串压缩在一起可能会被滥用:

String.raw({ raw: '123 ' }, 4, 5, 6)
// => '142536'

没有内置的功能,但有更多的功能方法来实现。通常,如果我有一个“创建一个数组,然后循环某个内容并附加到数组”形式的工作解决方案,我会转而使用它。您可以使用
reduce
定义
zip
函数,如下所示:

const zip = (a,b) => a.reduce( (c,x,i) => c.concat(x, b[i]), [] );
下面是一个演示:

constzip=(a,b)=>a.reduce((c,x,i)=>c.concat(x,b[i]),[]);
常数a=[1,2,3];
常数b=[4,5,6];
log(zip([1,2,3],[4,5,6]);
//=> [ 1, 4, 2, 5, 3, 6 ]
log(zip([0,'1,'c'],[d',4,'f']);

//=>[0,'d','1',4,'c','f']
此函数通常称为
zip
,它不是JS中内置的,但易于实现-请参阅。您需要使用
[].concat.apply([],zip(数组))
@georg Eh,nope。。。我只需要一个数组作为结果。。。那不是邮政编码是的,刚刚意识到,重新打开并编辑了评论^^^^是的,看到了。。。无论如何,这比仅仅使用
concat
/
sort
:p您不能在这里使用.sort(),因为您想要的顺序与值本身无关,它与值的来源有关。只需将您在函数中显示的循环放入,然后继续—在添加一些长度检查后,以防输入数组的长度不同。~5年后接受您的答案。。。我真丢脸!实际上只有两年!而且永远不会太迟。非常感谢。
const zip = (a,b) => a.reduce( (c,x,i) => c.concat(x, b[i]), [] );