今天在群里看到有人在讨论这么一个问题:
我有一个参数对象:
const params = {
id: 1,
name: '张三',
age: 18,
sex: '男',
address: '北京市海淀区',
email: 'aabbcc@qq.com'
}
这个参数对象是要传给后端的,但是后端要求我传参数时,不要传 emall 字段,请问如何处理比较好?后端说的不要 emial 字段并不是说让 emial 传空,而是这个参数对象里压根不要带 emial 这个字段。
我目前的处理方法是这样的:重新定义了一个对象,只保留了需要传给后端的字段
// ......
const paramsForBackend = {
id: params.id,
name: params.name,
age: params.age,
sex: params.sex,
address: params.address
}
但是我觉得这种处理方式有点麻烦,有没有更优雅的方式?
其实像这种情况我之前也有遇到过,处理方法基本使用的下面这两种:
1- 直接删除 params 对象的 email 字段,当然这种方式你要确保删除 emial 字段后对其它代码逻辑没有影响。
const params = {
id: 1,
name: '张三',
age: 18,
sex: '男',
address: '北京市海淀区',
email: 'aabbcc@qq.com'
}
delete params.email
2- 采用 ES6 的解构赋值来实现
// 通过解构赋值,我们拿到的 paramsForBackend 对象里就没有 email 这个字段了
const { email, ...paramsForBackend } = params