- 数组对象的深拷贝(通用版)
//targetObj:目标变量
//obj:被拷贝的对象
function deep(targetObj, obj){
var o=targetObj;
if(typeof obj=== 'object'){ //判断是不是对象
o = obj.constructor === Array ? [] : {}
for (var key in obj) {
if (typeof obj[key] === 'object'){ //判断内层是不是对象
o[key] = (obj[key].constructor===Array)?[]:{}; //constructor判断是不是数组
deep(o[key], obj[key])
} else {
o[key] = obj[key]
}
}
}
else{
o=obj;
}
return o;
}
- 数组对象取重(通用版)
//数组对象取重:
//arr:取重数组
//key:取重对象的一个属性名(如:name/age....)
quchong(arr,key){
for(let i = 0; i < arr.length; i++) {
for(let j = i+1; j < arr.length; j++) {
if(arr[i][key] === arr[j][key]){
arr.splice(j, 1);
j = j-1;
}
}
}
return arr;
},
eg:把arr中的相同数据取重。
var arr=[{name:"张三";sex:"女";age:18},{name:"张三";sex:"女";age:18},{name:"李明";sex:"男";age:15},{name:"向阳";sex:"女";age:18}]
console.log( quchong(arr,'张三'))//[,{name:"张三";sex:"女";age:18},{name:"李明";sex:"男";age:15},{name:"向阳";sex:"女";age:18}]