JS日常Tips

2019-03-18  本文已影响0人  南蓝NL
场景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
        });
上一篇 下一篇

猜你喜欢

热点阅读