如何修改clearSales函数实现删除全部记录仅保留一条?
解决方案
要实现保留一条销售记录的需求,只需在clearSales函数中对获取到的ID列表做移除单个元素的处理,再将剩余ID传入删除接口即可。同时建议增加边界判断,避免当记录数量≤1时执行删除操作。
修改要点:
- 获取ID列表后,先判断列表长度,若仅1条或无记录,直接返回不执行删除
- 若有多个ID,通过
slice(0, -1)(移除最后一个)、shift()(移除第一个)或其他方式保留一条记录的ID,将剩余ID传入批量删除接口
修改后的完整代码:
const getIds= async () => { let res = await axios({ method: 'get', url: '/v1/sales' }) expect(res.status).toBe(200) const ids = []; res.data.salesId.forEach(item => { ids.push(item.id); }); return ids }; export const clearSales = async () => { const idList = await getIds() // 仅当记录数大于1时执行删除,保留最后一条 if (idList.length > 1) { // 移除最后一个ID,保留该条记录;若想保留第一条,可改用 idList.slice(1) const idsToDelete = idList.slice(0, -1) let res = await axios({ method: 'post', url: '/v1/feed/bulk_update', data: { "feed_ids": idsToDelete, "operation": "delete" }, }) expect(res.status).toBe(200) } };
补充说明:
- 若想指定保留某一条特定记录(而非首尾),可在
clearSales中筛选出该记录的ID,从删除列表中排除即可。例如:// 假设要保留id为"target-id"的记录 const idsToDelete = idList.filter(id => id !== "target-id")
内容的提问来源于stack exchange,提问作者YusufOzt
相关产品推荐
相关产品推荐

