delete 删除对象属性
参考
1.使用delete运算符
例:
1) 使用点属性访问器删除:
| 1 | deleteobject.property; | 
在属性访问器上应用delete运算符时,运算符会从对象中删除相应的属性:
| 1 2 3 | const obj = {name: '十六个人博客',url: 'rwlok.com'};deleteobj.url;console.log(obj); // { name: '十六个人博客' } | 
2) 使用方括号属性访问器删除:
| 1 2 | deleteobject['property'];// orconst name = 'dynamicProperty';deleteobject[name]; | 
使用delete运算符删除属性是可变的,因为它会改变原始对象。
如果要删除的属性名称是动态确定的,则可以使用方括号语法:
| 1 2 3 4 | const obj = {  name: '十六个人博客',  url: 'rwlok.com'};const name = 'url';deleteobj[name];console.log(obj); // { name: '十六个人博客' } | 
2.使用rest解构对象
1) 属性名称已知:
| 1 | const { property, ...restObject } = object; | 
应用解构和rest语法后,restObject将包含与object相同的属性,只是没有删除的属性。
| 1 2 3 4 5 6 7 | const obj= {  name: '十六个人博客',  url: 'rwlok.com'};const { url, ...objRest } = obj;console.log(objRest); // { name: '十六个人博客' }console.log(obj); // { name: '十六个人博客',url: 'rwlok.com' } | 
2) 属性名称是动态的:
| 1 2 | const name = 'property';const { [name]: removedProperty, ...restObject } = object; | 
如果要删除的属性名称是动态确定的,则可以使用动态属性名称解构语法:
| 1 2 3 4 | const obj = {  name: '十六个人博客',  url: 'rwlok.com'};const name = 'url';const { [name]: removedProperty, ...objRest } = obj;console.log(objRest); // { name: '十六个人博客' } | 
rest结构方法还可以一次性删除多个属性:
| 1 2 3 4 5 6 7 | const obj = {  name: '十六个人博客',  url: 'rwlok.com',  title: '卡卡测速网', };const { url, title, ...objRest } = obj;console.log(objRest); // { name: '十六个人博客' } | 
附:通过赋值得到方式
| 1 2 3 4 5 6 7 8 9 10 11 12 | const car = {  color: 'blue',  brand: 'Ford'}const prop = 'color'const newCar = Object.keys(car).reduce((object, key) => {  if(key !== prop) {    object[key] = car[key]  }  returnobject}, {}) | 
总结
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号