美文网首页
数组方法concat

数组方法concat

作者: skoll | 来源:发表于2022-07-13 00:07 被阅读0次

    描述

    用于合并两个或者多个数组,此方法不会改变现有数组,而是返回一个新数组

    语法

    let newArr=arr.concat(val1,val2,val3)
    

    细节

    1 .concat合并数组和es6结构有啥区别
    2 .数组合并的其他方法

    1 .[...ArrayA,...ArrayB],append(...ArrayA),arr.splice(arr.length,...ArrayA) (这些都是和结构相关的)
    2 .arr.forEach(item=>arr.push(item))
    

    3 .如果忽略所有的value参数,则会返回一个原数组的浅拷贝
    4 .concat将对象引用复制到新数组中。原始数组和新数组都是引用相同的对象。数字类型或者字符串,布尔则是将值复制到新数组中

    let innerArr=[0,1]
    let a=[...innerArr,3]
    let b=[innerArr,3]
    console.log(a)
    console.log(b)
    innerArr=1
    console.log(a)
    console.log(b)
    console.log(innerArr)
    
    let cat={name:'kitty'}
    let pets=[cat]
    console.log(pets)
    // cat=1
    // cat={work:"web"}
    // 上面这俩都不行
    
    cat.name="cat"
    // 这是可以改变了
    console.log(pets)
    console.log(cat)
    

    5 .这里的引用是指的里面的值,本身的数组是这么变都不会影响新数据的
    6 .还要注意的是这里的引用是强引用,改变类型之后没有用

    强引用

    1 .JavaScript中最常见的就是声明一个变量并且将一个引用类型数据(对象)赋值给这个变量,这种情况就是强引用。只要该对象还被引用,垃圾回收机制GC就不会回收该对象或者属性。
    2 .对于一个普通对象,将全部引用该对象的变量关系相应设置为null,便能等待垃圾回收机制GC回收

    let obj = {
        name: "江流儿",
        age: 18
    }
    obj = null;//上面的对象等待GC垃圾回收
    

    相关文章

      网友评论

          本文标题:数组方法concat

          本文链接:https://www.haomeiwen.com/subject/yxuobrtx.html