首页 > 试题广场 >

数组合并

[编程题]数组合并
  • 热度指数:73863 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组

输入描述:
[1, 2, 3, 4], ['a', 'b', 'c', 1]


输出描述:
[1, 2, 3, 4, 'a', 'b', 'c', 1]
示例1

输入

[1, 2, 3, 4], ['a', 'b', 'c', 1]

输出

[1, 2, 3, 4, 'a', 'b', 'c', 1]
function concat(arr1, arr2) {
    return [...arr1,...arr2]
}
function concat(arr1, arr2) {
    return arr1.concat(arr2)
}

发表于 2021-05-27 17:41:00 回复(0)
function concat(arr1, arr2) {
    return new Array(...arr1,...arr2)
}
ES6 解构
发表于 2021-03-31 21:34:20 回复(0)
return (arr1.join(',') + ',' + arr2.join(',')).split(',')
发表于 2021-02-24 10:51:25 回复(0)
// 执行时间954ms 相比使用concat和其他连接方法快一点
function concat(arr1, arr2) {
    let temp = [...arr1, ...arr2]
    return temp
}
发表于 2021-02-22 17:01:58 回复(0)
function concat(arr1, arr2) {
   var arr = arr1.join()+","+arr2.join();
    arr = arr.split(",");
    return arr; 
}
发表于 2021-02-11 19:05:37 回复(0)
function concat(arr1, arr2) {
    return [...arr1, ...arr2];
}
使用扩展运算符合并数组
发表于 2020-08-31 13:52:15 回复(0)
function concat(arr1, arr2) {
    //利用剩余运算符一行搞定
    return arr_res = [...arr1, ...arr2];
}
利用ES6的剩余运算符,一行搞定。
发表于 2020-07-14 22:43:03 回复(0)
function concat(arr1, arr2) {
return (arr1 + ',' + arr2).split(',').forEach(value => {
if (value in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']) {
value = Number(value)
}
});;
}
编辑于 2020-03-20 17:28:37 回复(0)
function concat(arr1, arr2) { //简单粗暴
    return [...arr1, ...arr2]
}
发表于 2019-09-02 11:20:05 回复(0)
function concat(arr1, arr2) {
    return [...arr1,...arr2];
}


发表于 2019-08-24 09:58:00 回复(0)
function concat(arr1, arr2) {
    return arr1.concat(arr2);
}

function concat(arr1, arr2) {
    var a = arr1.slice();
    arr2.forEach(function(ele) {
        a.push(ele);
    })
    return a;
}

发表于 2019-08-08 21:18:30 回复(0)
function concat(arr1, arr2) {
    return arr1.concat(arr2);
}
发表于 2019-08-03 13:35:28 回复(0)
1.判断是否客户端存在concat方法
2.存在直接concat
3.不存在则以字符串连接,在使用split()方法转数组
function concat(arr1, arr2) {
    if(Array.prototype.concat){
       return  arr1.concat(arr2)
    }else {
        var str =arr1 +','+ arr2;
        return str.split(',');
    }
}

发表于 2019-02-18 14:29:30 回复(0)
function concat(arr1, arr2) {
 return Array.isArray(arr1) && Array.isArray(arr2) && [...arr1, ...arr2]
}
所有的es6语法都不通过啊。。😔
发表于 2018-06-21 10:59:53 回复(0)
function concat(arr1, arr2) {     var arr3 =arr1.concat(arr2);
    return arr3;
}

发表于 2017-12-12 22:14:17 回复(0)
function concat(arr1, arr2) {
    return arr1.concat(arr2);
}
发表于 2017-11-21 15:16:44 回复(0)
function concat(arr1, arr2) {
    if(Array.prototype.concat){
        return arr1.concat(arr2);
    }else {
        var newArr = arr1.slice(0);
        for(var i in arr2){
            newArr.push(arr2[i]);
        }
        return newArr;
    }
}
首先可以想到concat拼接数组,所以我们可以做一个兼容性判断,如果浏览器支持这个方法我们就直接用,然后我们再考虑不兼容的问题, 也是和之前的思路一样,new一个空数组,通过slice复制数组达到不修改数组实现操作,然后把第二个数组循环push到新数组中,达到目的。
发表于 2017-11-18 20:09:04 回复(0)
function concat(arr1, arr2) {
    var newarr=arr1.slice(0);
    
    for(var i=0;i<arr2.length;i++){
        newarr.push(arr2[i]);
    }
    
    return newarr;
}
发表于 2017-10-13 13:07:02 回复(0)
function concat(arr1, arr2) {
    return arr1.concat(arr2)
}
发表于 2017-10-09 20:31:09 回复(0)
function concat(arr1, arr2) {
	var arrNew = [];
    for(i = 0; i < arr1.length; i++){
        arrNew[i] = arr1[i];
    }
    for(j = 0; j < arr2.length; j++){
        arrNew[arr1.length+j] = arr2[j];
    }
    return arrNew;
}

发表于 2017-08-05 17:15:57 回复(0)

问题信息

难度:
25条回答 25131浏览

热门推荐

通过挑战的用户

查看代码