数组合并

1.concat() 不改变自身

有时候我们不希望原数组改变,这时就使用concat

var c = a.concat(b)

concat方法连接a、b两个数组后,a、b两个数组的数据不变,同时会返回一个新的数组。这样当需要进行多次的数组合并时,会造成很大的内存浪费


2.for循环遍历

遍历其中一个数组,把该数组中的所有元素依次添加到另外一个数组中

预先判断a、b哪个数组更大,然后使用大数组合并小数组,这样就减少了数组元素操作的次数


3.apply

利用apply参数是数组的特性:func.apply(obj,arg) arg是一个数组

a.push.apply(a,b);

调用a.push这个函数实例的apply方法,同时把b当作参数传入,这样a.push这个方法就会遍历b数组的所有元素达到合并的效果。


4.扩展运算符

var a = [1,2,3];

var b = [4,5,6];

var c = [...a,...b]


两个升序数组合并

function merge(arr1,arr2){

    return  arr1.concat(arr2).sort((a,b)=>a-b)

}


function merge(arr1,arr2){

    let i = 0;

    let j = 0;

    let res = []

    while(i<arr1.length && j<arr2.length){

       if(arr1[i]<arr2[j])res.push[arr1[i++]]

        else res.push[arr2[j++]]

    }

    if(i<arr1.length) res.concat(arr1.slice(i))

    if(j<arr2.length) res.concat(arr2.slice(j))

    return res;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 要求把几个数组合并并且去重 //合并数组,可以用contact和push, //用push.apply会改变原来合...
    isSunny阅读 2,713评论 0 0
  • js数组合并的方法 1.for循环遍历其中一个数组,把该数组中的所有元素依次push到另外一个数组中 2.conc...
    紫气楠楠阅读 3,526评论 0 0
  • 1、concat Array对象提供的concat()方法,连接两个或更多的数组,并返回一个新数组,原数组不变。但...
    巩小白阅读 5,313评论 0 4
  • 题:将两个数组进行合并,如:[a, b, c]和[d, e, f]进行合并变成[a, b, c, d, e, f]...
    差很多先生CL阅读 9,427评论 0 2
  • 君の変幻自在の踊りが 音楽と話し合うのようで 私たちも楽器になりたくなった 你的变幻自在的舞蹈 仿佛和音乐对谈一样...
    piedo阅读 1,310评论 0 0

友情链接更多精彩内容