zoukankan      html  css  js  c++  java
  • 24、前端知识点--数组的合并

    数组合并有以下几种办法:

    var arr1 = [1, 2, 3];var arr2 = ["a","b","c","d","e","f"];
    

      

    1、concat

    var arr = arr1.concat(arr2);  // [1, 2, 3, "a", "b", "c", "d", "e", "f"]

    Array对象提供的concat()方法,连接两个或更多的数组,并返回一个新数组,原数组不变。
    但当我们需要连接多个数组的时候,效率很低,会造成很大的内存浪费,所以这个方法肯定不是最好的。

    2、 通过for循环

    for(let i in arr1){
        arr2.push(arr[i]);
    }
    console.log(arr2)  // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
    

    这样写性能相对来说要高一点,但是会改变数组本身的值,而且很丑

    3、通过map()

     arr1.map(item=>{
        arr2.push(item) 
     });
      console.log(arr2)  // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
    

    这样写性能相对来说要高一点,但是也会改变数组本身的值,这样看起来逼格高一点啦~~~

    4、apply

    函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组。所以我们可以利用这点,直接上代码:

    1.
    arr1.push.apply(arr1,arr2);   
    console.log(arr1)  // [1, 2, 3, "a", "b", "c", "d", "e", "f"] 
    2.
    Array.prototype.push.apply(arr1,arr2);
    console.log(arr1)  // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
    

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

    5、ES6 – 扩展运算符

    arr = [...arr1,...arr2]
    console.log(arr)   // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
    

    这个方法不会改变原数组的内容,返回新数组。

  • 相关阅读:
    gradle 转 maven
    java Multimap
    java 写法推荐
    Python虚拟环境virtualenv
    C# 转换图形为PCX 格式
    微软宣布.NET开发环境将开源 支持Mac OS X和Linux
    写给在Java和.net中徘徊的新手
    HTML5 vs FLASH vs SILVERLIGHT
    我的NHibernate曲折之行
    NHibernate 3 Beginner's Guide
  • 原文地址:https://www.cnblogs.com/jianguo221/p/11832739.html
Copyright © 2011-2022 走看看