1 前言
发起请求的时候,发现有些参数并不需要,这时候就要删除这些参数了,如果这些参数写在了对象中,那怎样删除不需要的参数呢?下面记录了几种方法。
2 方法
2.1 delete 操作符
有点简单粗暴
const User = {
firstname: 'xiao',
lastname: 'hong'
}
console.log(User.firstname) // xiao
delete User.firstname // 删除属性
console.log(User.firstname) // undefined
2.2 利用ES6的解构赋值
比较省事的感觉
const {a, ...ajaxData} = { a: 1, b: 2, c: 3 }
console.log(ajaxData) // { b: 2, c: 3 }
2.3 把属性设置为undefined
性能相对较好。不过这种不算删除,因为属性还在
const User = {
firstname: 'xiao',
lastname: 'hong'
}
User.firstname = undefined
console.log(User) // { firstname: undefined, lastname: "hong" }
for( key in User){
console.log('key value', key, User[key]) // key value firstname undefined // key value lastname hong
}
2.4 遍历对象,然后重新创建一个新的对象,达到删除效果
通过 Object 的 keys()遍历对象
const User = {
firstname: 'xiao',
lastname: 'hong'
}
let newUser = {}
Object.keys(User).forEach((item, index) => {
if (item !== 'firstname') newUser[item] = User[item]
})
console.log(newUser) // { lastname: "hong" }
通过for...in...遍历对象
const User = {
firstname: 'xiao',
lastname: 'hong'
}
let newUser = {}
for(let key in User) {
if (key !== 'firstname') newUser[key] = User[key]
}
console.log(newUser) // { lastname: "hong" }