0

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

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

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

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

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

4个回答

0

已采纳

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

let arr1 = ['', '', '123', '', '234']
let arr2 = ['sadsad0', 'sadsad']
let index = 0
arr1.map(item => item === '' ? item : arr2[index++])
1
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删除第一个元素
    }
}
0

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

var arr1 = ['', '', '123', '', '234'];
var arr2 = ['sadsad0', 'sadsad'];
var times = 0;
arr1.map(function(value){
    if (value) {
        return arr2[times++];
    } else {
        return value;
    }
})
0

bold_italic_link> 引用code- 列表

撰写答案