saleOutBounds = saleBoundArr.map(saleBound => { const customerDetail = customerDetails.find(detail => detail.data.errcode === 0 && detail.data.data.id === saleBound.customer_id); if (customerDetail) { const customerData = customerDetail.data.data; delete customerData.id; saleBound = Object.assign(saleBound,customerData); } return saleBound; }); 优化合并
时间: 2024-03-12 10:47:01 浏览: 126
可以通过使用可选链运算符(Optional Chaining Operator)来优化这段代码的合并过程。可选链运算符可以安全地访问嵌套对象或数组中的属性,如果属性不存在则返回 `undefined`,避免了使用传统的 if-else 判断语句的繁琐操作。下面是优化后的代码:
```
saleOutBounds = saleBoundArr.map(saleBound => {
const customerDetail = customerDetails.find(detail => detail.data?.errcode === 0 && detail.data.data.id === saleBound.customer_id);
if (customerDetail) {
const customerData = customerDetail.data.data;
delete customerData.id;
saleBound = { ...saleBound, ...customerData };
}
return saleBound;
});
```
在上面的代码中,使用了可选链运算符 `?.` 来访问 `detail.data` 中的属性,如果 `detail.data` 不存在则返回 `undefined`,避免了判断 `detail` 和 `detail.data` 是否为真值的繁琐操作。同时,使用了对象展开运算符 `...` 将 `saleBound` 和 `customerData` 合并到一个新的对象中,避免了使用 `Object.assign` 方法的冗长语法。
阅读全文