前言
在今天的代码审查过程中,我偶然间发现了一位同事编写的代码片段,就此谈谈剩余参数的用法
数组解构赋值是一项强大而灵活的特性,它能够让我们轻松地从数组中提取元素并将其赋值给变量,除了基本的数组解构赋值外,我们还可以利用它来做数据过滤
新同事的写法
const res = newResult.map((item) => {
delete item.simulateResult;
delete item.neckSpeckle;
delete item.thirdDepartName;
delete item.secondDepartName;
delete item.cardNo;
delete item.workStrength;
delete item.workNo;
delete item.realName;
return item;
});
更好的方案
使用了对象解构的语法来显式地列出所有我们想要从每个item中排除的属性。然后,我们使用剩余属性(...rest)来收集所有未被明确列出的属性,这些属性返回形成一个新的对象。这样,你就得到了一个新的数组res,你只需在解构表达式中相应地添加或删除它们,而不需要修改delete语句。
const res = newResult.map(item => {
const {
simulateResult,
neckSpeckle,
thirdDepartName,
secondDepartName,
cardNo,
workStrength,
workNo,
realName,
...rest
} = item;
return rest;
});
总结
这种方法的好处是代码更加清晰和易于维护。此外,这种方法也避免了使用delete可能带来的性能问题,因为delete操作会修改对象的原型链,这可能会影响到JavaScript引擎的优化。