js 对象属性删除
一、使用 delete 关键字删除对象属性
语法
delete object.property
delete 对象.属性
删除成功返回 true, 删除失败返回 false
使用delete运算符删除属性是可变的,因为它会改变原始对象。
实例:
let obj = { name: '乐乐', age: '18' }
console.log(obj) // {name: '乐乐', age: '18'}
delete obj.age // true
console.log(obj) // {name: '乐乐'}
运行结果
如果上传的属性是动态的
代码
let obj = { name: '乐乐', age: '18' }
console.log(obj) // {name: '乐乐', age: '18'}
let name = 'age'
console.log(delete obj[name]) // true
console.log(obj) // {name: '乐乐'}
运行结果
二、使用rest解构对象
语法
const { property, ...newObject } = object
const { 属性名, ...新对象} = 对象
应用解构和rest语法后,restObject将包含与object相同的属性,只是没有删除的属性。
代码
let obj = { name: '乐乐', age: '18' }
let { age, ...newObj } = obj
console.log(obj) // {name: '乐乐', age: '18'}
console.log(newObj) // {name: '乐乐'}
运行结果
三、使用ES6新增的Reflect.deleteProperty
语法
Reflect.deleteProperty(object, property)
Reflect.deleteProperty(对象,属性名),返回一个布尔值
代码
let obj = { name: '乐乐', age: '18' }
console.log(obj) // {name: '乐乐', age: '18'}
console.log(Reflect.deleteProperty(obj, 'age')) // true
console.log(obj) // {name: '乐乐'}
运行结果