美文网首页
数组拓展

数组拓展

作者: 变量只提升声明不提升赋值 | 来源:发表于2020-09-07 15:32 被阅读0次
    var a1 = [1,2,3,4,5]
    var a2 = a1
    a2.length = 3
    console.log('a1:' + a1, '-----a2:' + a2)

上述代码中将a1这个数组赋值给了a2
然后改变了a2数组的长度


image.png

可以看到,a1的数组长度也改变了
这是因为,我们在赋值的时候其实并没有复制出一个新的数组出来,而是复制了一个指向这个数组的指针 也就是说现在又a1 a2两个指针指向这个数组 当我们去修改a2数组的时候,其实修改的还是原数组 所以a1的长度也会被改变

es5提供的语法 arr.concat(); 来克隆数组

    var a1 = [1,2,3,4,5]
    const a2 = a1.concat();
   a2.length = 3
   console.log('a1:' + a1, '-----a2:' + a2)
image.png

可以看到,现在去修改a2的数组已经不会影响到a1这个数组了

es6也提供了扩展符来执行这一操作

const a1 = [1, 2];
// 写法一
const a2 = [...a1];
// 写法二
const [...a2] = a1;

这样写的话也会创造出一个新的数组

相关文章

  • 数组拓展

    上述代码中将a1这个数组赋值给了a2然后改变了a2数组的长度 可以看到,a1的数组长度也改变了这是因为,我们在赋值...

  • 【ES6】数组新增方法

    7 数组的拓展 #7.1 拓展运算符 拓展运算符使用(...),类似rest参数的逆运算,将数组转为用(,)分隔的...

  • ECMAScript 6学习

    数组的拓展 复制数组 es5: map

  • ES6 数组拓展、对象拓展、函数、类的语法

    一、数组的拓展 二、对象的拓展 三、函数的拓展 四、class基本语法

  • 数组的拓展

    扩展运算符(spread)是三个点(...) 它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。...

  • 数组拓展方法

    1. .indexOf(element) / .lastIndexOf(element) 这两个方法用于查找数组内...

  • 数组的拓展

    1、拓展运算符拓展运算符是三个点(...)。它好比rest参数的逆运算,将一个数组转为逗号分割的参数序列。 该运算...

  • js数组拓展

    Array.isArray(obj) 这是Array对象的一个静态函数,用来判断一个对象是不是数组 indexOf...

  • shell array

    Shell数组变量 【拓展 1星】 普通数组:只能使用整数作为数组索引关联数组:可以使用字符串作为数组索引 一...

  • 【JavaScript高程总结】ES6 数组拓展

    ES6 数组拓展 ES6为Array新增的扩展 ...**(拓展运算符)---三个点将一个数组转为用逗号分隔的参数...

网友评论

      本文标题:数组拓展

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