两个数组对应插入

现在有两个数组
1.['', '', '123', '', '234']
2.['sadsad0', 'sadsad']

需要遍历第一个数组
把第二个数组的值填入第一个数组首个不为空的值,第二个数组的接下来的值依次填入第一个数组之后不为空的值

在这里也就是第二个数组第一个值 填入第一个数组第三个

第二个数组第二个值填入第一个数组最后一个

这个算法要怎么写,或者ES6有对应的方法吗

阅读 2.9k
4 个回答

使用 ES6map箭头函数,一行代码的事

let arr1 = ['', '', '123', '', '234']
let arr2 = ['sadsad0', 'sadsad']
let index = 0
arr1.map(item => item === '' ? item : arr2[index++])
var arra = ['', '', '123', '', '234'],
    arrb = ['sadsad0', 'sadsad'];
for(let i = 0; i<arra.length; i++){
    if(arrb.length == 0) break;
    if(arra[i]==''){
        arra[i]= arrb[0];
        arrb.shift();//arrb删除第一个元素
    }
}

泻药。。就是一个循环解决的事情嘛。。

var arr1 = ['', '', '123', '', '234'];
var arr2 = ['sadsad0', 'sadsad'];
var times = 0;
arr1.map(function(value){
    if (value) {
        return arr2[times++];
    } else {
        return value;
    }
})
新手上路,请多包涵

bold_italic_link> 引用code- 列表

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题