# BUG
## 原因
回顧我們以上的代碼,我們重頭來梳理一下,看看會出現的意外情況,比如在**刪除列表**時,出現的意外情況。在底欄狀態為**全部**時,我們沒有發現任何情況。在切換為**進行中**或者是**已完成**時,再進行上面所說的和**刪除列表**,就出現了意外。
究其原因是因為我們用了**索引值**,而且`curlist`數組的索引和`list`數組的**索引對不上**,導致的問題。
## 解決辦法
索引值是不可以用的,我們刪除數組時傳遞的索引值,不傳索引,我們還可以直接把對應的當前數組中存儲的對象傳遞下去即i`tem` 然后再通過`list數組`查找到當前`item` 的**索引**。再將**索引這一項對應的item對象從list數組中刪除**即可
如何查找到對應的索引,我們可以通過數組方法中的`indexOf`方法來解決。
```
<li :class="{completed:item.selected,editing:edit===index}" v-for="(item,index) in list">
<div class="view">
……
<button class="destroy" @click="remove(item)"></button>
</div>
……
</li>
……
<script>
……
var vm = new Vue({
……
methods: {
……
remove(index){
var index = this.list.indexOf(item);
this.list.splice(index, 1)
}
}
})
</script>
```