form.value.id = e.id; isShow.value = e.isShow == "true" ? true : false; const { data } = e.type ? await uni.$u.api.house.houseDetailById(e.id) : await uni.$u.api.house.houseDetailByIds(e.id); isCollect.value = data.collectStatus; imgList.value = data.photo ?.split(",") .map((v) => ({ image: proxy.getProfileUrl(v) })); houseObj.value = data; houseObj.value.supportingFacilities = data.supportingFacilities.split(","); covers.value[0].longitude = data.longitude; covers.value[0].latitude = data.latitude; 请优化
时间: 2024-02-28 18:52:47 浏览: 297
根据提供的代码片段,我发现可以优化的地方有:
1. 对 isShow 的赋值可以简化为 isShow.value = e.isShow === "true";
2. 对 data.photo 的处理可以避免使用可选链操作符 ?.,可以改为先判断 data.photo 是否存在再进行后续操作;
3. 对 data.supportingFacilities 的处理可以使用 split 操作符的第二个参数来指定分割的最大次数,避免不必要的计算;
4. 对 covers 的赋值可以使用对象字面量的方式来避免直接修改数组元素的属性。
优化后的代码如下:
```javascript
form.value.id = e.id;
isShow.value = e.isShow === "true";
const { data } = e.type
? await uni.$u.api.house.houseDetailById(e.id)
: await uni.$u.api.house.houseDetailByIds(e.id);
isCollect.value = data.collectStatus;
if (data.photo) {
imgList.value = data.photo.split(",").map((v) => ({ image: proxy.getProfileUrl(v) }));
} else {
imgList.value = [];
}
houseObj.value = data;
houseObj.value.supportingFacilities = data.supportingFacilities.split(",", 10);
covers.value = [{ longitude: data.longitude, latitude: data.latitude }];
```
注意,这里做了一些假设,如假设 e.isShow 只会是字符串 "true" 或 "false",假设 data.photo 可能为 undefined。如果这些假设不成立,需要根据实际情况进行调整。
阅读全文