浅克隆 (今日)

67 阅读1分钟

浅克隆


  • 使用arr1=arr2的语法不会克隆数组,因为指向同一个内存空间, 两个变量并没有分开
  • 浅克隆:只克隆数组的第一层,如果是多维数组,或者数组中的项是其他引用类型值,则不克隆>其他层, 藕断丝连
  • 深克隆:克隆数组的所有层,要使用递归技术

变量

  let c = 2;
  let d = c;
  c++;
  console.log(d); //2
  console.log(c); //3

不论c怎么变,都不会影响到d

浅克隆

  let a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  let b = [];
  for (let i = 0; i < a.length; i++) {
    b.push(a[i]);
  }
  a.push(10);
  console.log(a); //[1,2,3,4,5,6,7,8,9,10]
  console.log(b); //[1,2,3,4,5,6,7,8,9]

1.浅克隆用for循环数组遍历
2.一次次的给b加数组项
3.只适用于一维数组