ES6中删除对象属性的方法
文章目录
- ES6中删除对象属性的方法
- 1. delete方法删除(单个)
- 1. 删除方法1
- 2. 删除方法2
- 2. Reflect.deleteProperty删除(单个)
- 3. 解构赋值删除(批量)
1. delete方法删除(单个)
delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它最终会被释放。
用法:
elete object.property
或delete object[property]
1. 删除方法1
<script>//obj对象const obj = {page: 1,size: 10,sort: 'id',order: 'desc',model: {},ext: [],other: null};//1. 删除单个key方法1delete obj.extdelete obj.otherconsole.log("删除ext与other属性后,",obj)// 输出如下/*{"page": 1,"size": 10,"sort": "id","order": "desc","model": {}}*/
</script>
2. 删除方法2
<script>//obj对象const obj = {page: 1,size: 10,sort: 'id',order: 'desc',model: {},ext: [],other: null};//2. 删除单个key方法2delete obj["sort"]delete obj["size","order"] //写多个,只删最会一个,这里会删除掉order,size依然存在console.log("删除sort与order属性后,",obj)//输出如下/*{"page": 1,"size": 10,"model": {},"ext": [],"other": null}*/</script>
2. Reflect.deleteProperty删除(单个)
Reflect.deleteProperty(object,property)方法等同于 delete obj[property],用于删除对象的性。
该方法返回一个布尔值。如果删除成功,或者被删除的性不存在,返回true;删除失败,被删除的厘性依然存在,返回 false。
如果 Reflect.deleteProperty(object,property)方法的第一个参数不是对象,会报错。
<script>//obj对象const obj = {page: 1,size: 10,sort: 'id',order: 'desc',model: {},ext: [],other: null};Reflect.deleteProperty(obj,'other')console.log("删除后的对象",obj)//输出如下:/* {"page": 1,"size": 10,"sort": "id","order": "desc","model": {},"ext": []}*/</script>
3. 解构赋值删除(批量)
利用解构赋值可删除对象中的多个属性
<script>//obj对象const obj = {page: 1,size: 10,sort: 'id',order: 'desc',model: {},ext: [],other: null};//批量删除,利用解构赋值的方式(推荐)const {sort,order,other,...newObj} = objconsole.log("删除sort,order,other属性后的新对象",newObj)//输出如下:/*{"page": 1,"size": 10,"model": {},"ext": []}*/</script>