# 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>
```