场景1
两个对象之间的的拷贝,A对象中有一个key是B对象不需要的,假设有个对象A定义如下
reqData = {
"beginTime": this.startTime,
"endTime": this.endTime,
"channels": this.channelAction,
"code": '',
"genderIds": this.sexAction,
"products": this.productAction,
"citys": this.regionAction,
"pageNumber": this.pageNumber,
"pageSize": this.pageSize,
"sort": this.sort,
"order": this.order
};
现在要这个A对象拷贝给B对象,但是不需要order这项值
思考ing........ 拷贝(深拷贝、浅拷贝)=> 删除
深拷贝:reqData_copy = JSON.parse(JSON.stringify(this.reqData)); // 深拷贝
浅拷贝 : 直接赋值
删除: delete reqData_copy [‘order’]
深拷贝的原生方法
const deepCopy = (sourceObj) =>{
if(typeof sourceObj !== 'object')return;
let newObj = sourceObj instanceOf Array ? []:{};
for(let key in sourceObj){
if(sourceObj.hasOwnProperty(key)){
newObj[key] = (typeof sourceObj[key] === 'object'?deepCopy[key]:sourceObj[key]);
}
}
return newObj;
}
let obj = {a:1,arr:[3,3]};
let res = deepCopy(obj);
console.log(res)
场景2
对象的遍历和filter的用法
Object.keys(this.levelList)
.filter(key => {
return key != "0";
})
.map(key => {
return +key; // 将字符串转化为number
});