1、赋值 = # alist = [10,20,[100,200]] # blist = alist # blist.append(30) # print('alist: ',alist,' ; id是: ',id(alist)) # print('blist: ',blist,' ; id是: ' ...
分类:
编程语言 时间:
2020-06-15 23:09:41
阅读次数:
59
直接赋值:其实就是对象的引用(起别名)。 比如,桌子上放了一个西红柿(同一个地址),小明称他为西红柿 ,小红称它为番茄 ,我称它为洋柿子 (不别名) 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。比如,在同一条河上建立两个码头, 两个码头是不一样的,但是同一条河。(河的地址还是同一个地 ...
分类:
编程语言 时间:
2020-06-15 22:30:56
阅读次数:
56
1.浅拷贝 var obj1 = { name: "lsd", age: 25, skill: ["Java", "H5", "PHP"], wife: { name: "wyq", age: 24 } } var obj2 = {}; // 浅拷贝只拷贝第一层属性,引用类型数据地址是相同的 因此存 ...
分类:
编程语言 时间:
2020-06-15 13:48:18
阅读次数:
52
1、循环删除列表,为啥结果不正确? 1 a = [1,1,2,3,4,5]#原始下标为0,1,2,3,4,5 2 3 # 第一次循环,处理下标0,即1,满足条件,删除,结果[1,2,3,4,5],此时下标为0,1,2,3,4 4 # 第二次循环,处理下标1,即2,不满足 5 # 第三次循环,处理下标 ...
分类:
编程语言 时间:
2020-06-14 18:52:36
阅读次数:
54
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) (图片来自cyc2018) public class Solut ...
分类:
其他好文 时间:
2020-06-07 19:54:20
阅读次数:
59
要搞懂这三个概念,将下面三个程序自己测试一遍就行。 ...
分类:
编程语言 时间:
2020-06-07 16:26:26
阅读次数:
50
昨天工作之中,前端伙伴讨论到了解构赋值到底是浅拷贝还是深拷贝,今天梳理一下。 1、ES6的解构赋值,大家应该都清楚,就是可以快速取出数组或者对象中的值;具体使用情况如下: const a = { name: 'name', age: 18, marriage: false, } let { name ...
分类:
其他好文 时间:
2020-06-03 17:18:23
阅读次数:
301
1 // 深拷贝 2 function cloneDeep(obj) { 3 // 3.根据obj为对象或者数组,产生一个空的对象或数组,存放数据 4 var newobj = obj instanceof Array ? [] : {}, 5 // 1.for...in进入循环 6 for (va ...
分类:
Web程序 时间:
2020-06-01 00:54:32
阅读次数:
88
Why: 引用类型拷贝为了不出现数据共享问题,需要使用深拷贝。 So: 1.内部原理: 1 function inCopy(obj1,obj2) { 2 var obj1 = obj1 || {};//容错处理 3 for (var k in obj2) { 4 if(obj2.hasOwnProp ...
分类:
编程语言 时间:
2020-05-30 21:37:58
阅读次数:
153
题目: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 深拷贝与浅拷贝: (1)深拷贝(Deep Copy),类 ...
分类:
其他好文 时间:
2020-05-30 01:06:59
阅读次数:
57