美文网首页
关于js数组浅拷贝的问题

关于js数组浅拷贝的问题

作者: Eirmood | 来源:发表于2020-08-14 16:54 被阅读0次
js代码 运行结果

问题:在调用方法前把数据data=[]清空了,为什么后面调用的时候数据还是不断堆集?
让我们打印一下link


link数据

问题出在了data=link这步赋值操作上,浅拷贝就是复制一份引用,所有引用对象都指向一份数据,并且都可以修改这份数据,也就是说data 和 link指向了同一块内存.

解决方法:
1、扩展运算符
data = [...link]

2、使用for循环
if (key > 0) {
data = []
for (var i = 0; i < link.length; i++) {
data.push(link[i]);
data.push('哈哈');
}
}

相关文章

  • 关于js数组浅拷贝的问题

    问题:在调用方法前把数据data=[]清空了,为什么后面调用的时候数据还是不断堆集?让我们打印一下link 问题出...

  • 重新认识js复杂类型数据的引用和深浅拷贝

    js 基本概念———— 数据类型 js 深浅拷贝之概念 代码实现 —— 数组和对象的j浅拷贝 代码实现 —— 数组...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • 前端知识海底捞之JS

    AMD CMD CommonJS 阻止默认行为和阻止冒泡 JS数组 slice实现浅拷贝 concat实现浅拷贝 ...

  • JS中对象的复制

    JS中的对象复制分为两种情况:深拷贝和浅拷贝。深拷贝和浅拷贝的区别在于对数组和对象的拷贝,对它们拷贝时浅拷贝只是拷...

  • 手撕常见面试题

    DOM 事件代理 数组 对象 扁平化 去重 - unique() 拷贝 浅拷贝 深拷贝 copy()函数实现 JS...

  • 关于几个拷贝的问题

    数组浅拷贝 数组深拷贝 复合数组深拷贝

  • javascript 数组以及对象的深拷贝

    数组的深拷贝在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示: for 循环实现数组的深...

  • JS中的深拷贝与浅拷贝

    知乎:js中的深拷贝和浅拷贝? 掘金: js 深拷贝 vs 浅拷贝 前言 首先深拷贝与浅拷贝只针对 Object,...

  • js浅拷贝深拷贝

    js浅拷贝,深拷贝的简单实现 基础数据 浅拷贝 深拷贝

网友评论

      本文标题:关于js数组浅拷贝的问题

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