一、判断是否为数组,数组返回true,否则false
Array.isArray(obj)
let arr = [];
let arr1 = {};
let arr2 = 10;
console.log(Array.isArray(arr1));
二、检测对象是否还有对象。
obj.hasOwnProperty(key)
let obj = {
name:"zs",
age:18,
each:{
a:1,
b:2,
c:3
}
}
console.log(obj.hasOwnProperty("name"));
三、递归。
let arr = [11,[22,33],[44,[[55,66],77],88,99]];
let arr1 = [];
let arr2 = {}
function func(user){
// !Array.isArray(user) == Array.isArray(user)==false
if(Array.isArray(user)==false){
return;
}
console.log(222222);
for(let i=0;i<user.length;i++){
if(Array.isArray(user[i])==false){
arr1.push(user[i]);
}else {
func(user[i]);
}
}
}
func(arr);
func(arr2);
console.log(arr1);
四、原型。
function Star(name,age){
this.name=name;
this.age=age;
this.sing=function(){
console.log('唱歌')
}
}
五、深拷贝。
function deepClone(obj){
let objs = Array.isArray(obj)?[]:{};
if(obj&&typeof obj==="object"){
for(key in obj){
if(obj.hasOwnProperty(key)){
if(obj[key]&&typeof obj[key]==="object"){
objs[key] = deepClone(obj[key]);
}else{
objs[key]=obj[key];
}
}
}
}
return objs;
}
let a=[0,1,[2,3],4];
let b = deepClone(a)
a[0]=1;
a[2][0]=1;
console.log(a,b);