7:数组常用方法
-
改变原数组: push pop shift unshift sort reverse splice
-
不改变原数组: concat join split toString slice
8:数组去重
-
1: es6提供的方法
-
2: 双循环遍历
-
3:indexOf
-
4:includes
-
5:对象的属性
[...new Set([1,2,2,4])]
9:对象的拷贝之深拷贝&&浅拷贝
function deepClone(origin, target){
var target = target || {};
var toStr = Object.prototype.toString()
var arrStr = "[object Array]";
for(var prop in origin) {
if(origin.hasOwnProperty(prop)) { // 判断是不是原型链上的属性或者是自有属性
if(origin[prop] !== 'null' && typeof(origin[prop]) == 'object'){ // 判断属性是不是原是值
if(toStr.call(origin[prop]) == arrStr){ // 判断属性是对象还是数组
target[prop] = []
} else {
target[prop] = {}
}
// 简化写法
// target[prop] = toStr.call(origin[prop]) == arrStr ? [] :{}
deepClone(origin[prop],target[prop])
} else { // 原始值
target[prop] = origin[prop]
}
}
}
return target;
}