跳到主要内容

js 基础知识

深浅拷贝

let a = {
aa: 1,
bb: 2,
cc: 3,
dd: {
ee: 5,
},
ff: {
gg: 6,
},
};
let d = JSON.parse(JSON.stringify(a)); //深复制包含子对象
let c = { ...a }; //拷贝一层但不包含子对象
let b = a; //浅拷贝
b.bb = 22;
c.cc = 33;
c.dd.ee = 55;
d.ff.gg = 66;
console.log(a);
console.log(b);
console.log(c);
console.log(d);

数组去重

// 思路1:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中
// 思路2:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组。
// 思路3:利用对象属性存在的特性,如果没有该属性则存入新数组。
// 思路4(最常用):使用es6 set
let arr = [1, 2, 3, 3, 5, 7, 2, 6, 8];
console.log([...new Set(arr)]);