js数组交叉合拼并

var a = [1,2,3]
var b = [a,b,c]
请问如何得到c数组
var c = [1,a,2,b,3,c]

阅读 3.4k
3 个回答

不知 a, b 数组的长度时相同的吗?
我就以相同的来做咯。

const a = [1,2,3], b = ['a','b','c'];
let length = a.length, c = [];
for (let j = 0; j < length; j++) {
    c.push(a[j]);
    c.push(b[j]);
}
console.log(c);

修改下答案

这个可以不用确定长度是否相等

const a = [1,2,...], b = ['a','b',...]; 
let length = a.length > b.length ? a.length : b.length;
let c = [];
for (let j = 0; j < length; j++) {
    if (a[j]) c.push(a[j]);
    if (b[j]) c.push(b[j]);
}
console.log(c);

有个疑问,你 b 数组里面的 a,b,c 是变量或者引用吗?

var length = Math.min(a.length,b.length)
var result = []
for(var i=0;i<length;i++) {
    result.push(a[i])
    result.push(b[i])
}

如果两个数组长度不相等,再按照需求处理多出来的部分

var a = [1,2,3]
var b = ['a','b','c']

var c = []
a.forEach((item, index) => {
  c = c.concat(item, b[index])
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题