我的需求是陣列選擇刪除掉相應資料,後台需要我返回字串連線的資料,替換修改。
<
el-checkbox-group
v-model
="checklist"
@change
="handlecheckedcitieschange"
>
<
el-checkbox
:label
="index"
v-for
="(item,index) in files"
:key
="item.index"
>
<
/el-checkbox
>
<
/el-checkbox-group
>
這裡我選擇用迴圈的index作為核取方塊動態的laber,勾選相應的項,就把索引index新增到定義的checklist陣列中。
然後迴圈刪除掉要處理的陣列的相應下標項。
問題出現
迴圈下我用陣列的splice方法刪除對應項 this.files.splice(item,1),但用splice刪除陣列時,陣列發生改變,相應的索引值也會發生變化,就導致有的索引在改變之後沒有了,無法刪除。
解決方法
this
.checklist
.sort()
;for
(vari=
this
.checklist
.length-1
;i>=0
;i--
)
這裡採用逆向迴圈,從索引大的值開始刪除,索引就算改變了也會不會出翔找不到對應的索引項。
這裡我用到了sort()給數值排序是因為我用的index作為動態laber,新增的索引可能是第0個開始也可能是第n個,所以這裡加上排序,就完美解決了這個問題。1↩︎
splice 陣列刪除方法
splice增加資料到陣列 arr.splice 2,0,item 這句話中第乙個2指的是從arr 2 開始,0指刪除0個資料,item指插入資料為item arr.splice 2,1 這句話中第乙個2指的是從arr 2 開始,1指刪除1個資料 元素描述 index 必需。規定從何處新增 刪除元素...
陣列迴圈刪除資料時,splice使用注意
當在迴圈陣列中,刪掉某個元素的時候,不要使用splice方法。因為splice會使原陣列發生變化,而此時陣列還處在迴圈中,所以會出現問題。例子 有個陣列 formdata 需求 刪除formdata的itemlist中,queid 001 的一項。我最開始使用的是splice方法,但是報錯了 for...
splice 陣列刪除增加方法
splice增加資料到陣列 arr.splice 2,0,item 這句話中第乙個2指的是從arr 2 開始,0指刪除0個資料,item指插入資料為item arr.splice 2,1 這句話中第乙個2指的是從arr 2 開始,1指刪除1個資料 元素描述 index 必需。規定從何處新增 刪除元素...