接到这么一个需求:批量复制一个详情数据,但是详情数据的name不能相同。相同的话,name后面拼数字。
os: 首先这个情况,完全可以规避掉。比如你copy的时候,只能选一个copy。此时你可以用findIndex来找是否重复,重复添加数字,一个去找比多个去找要简单太多了。另一种就是你copy一个,出一个弹窗修改名字,名字直到不重复为止,等等…
但是! 就要这么做怎么办呢?
我参考了mac上,copy文件的名字的方式。是这样的,你copy第一次,会出现xx2、再copy,copy的名字是xx3,如果你copy xx2, copy的名字是xx2 2,3是同理。
如下图:
假如将2 3删掉,再copy一个2的话,是应该出现2 5呢还是2 3呢?
答案是 2 3。这说明,是很暴力的插入数组里,你没有我就给你顶上,而不是按顺序走。那咱们也按照这个办法来做吧。
不会 就参考人家怎么做的嘛
下面是代码实现。
点击copy按钮的方法
cloneDeep是lodash中的方法,拿来直接用。
let saveData = []
let resultData = cloneDeep(this.resultData)
// checkList 选中的内容 一般是视图层绑定的id