VUE中怎么删除数组包裹下的多条数组

<div class="card-list" v-for="(index, text) in Carditem" :key="text">
<swipeout v-for="(item,index) in items" :key="index">

<div @click="onDeleteCard(item,text)">删除</div>

methods: {

    onDeleteCard(item,text) {
       this.Carditem[text].splice(index,1);
    },
}
做好了


阅读 3.7k
5 个回答

找到item的key,然后delete 就行了

let keys = Object.keys(this.Carditem)
let targetKey = keys.find( key => this.Carditem[key] === item )

delete this.Carditem[targetKey]

更简单的方法是在你的事件处理函数 onDeleteCard 里直接传入key参数。
Vue中使用v-for遍历对象,3个参数分别是(value, key, index),你把第二个参数传进去就行了,我看你的第二个参数是叫text

<div @click="onDeleteCard(item, text)">删除</div>

onDeleteCard(item, text) {
    delete this.Carditem[text]
}

Carditem是个对象 没有indexOf方法
如果不需要key的话可以把Carditem的value转成数组之后再进行删除操作
或者遍历对象 使用delete删除对应的属性

你的Carditem是对象啊,哪来的indexOf方法,你是一个对象包了数组而已,直接点出来操作就行了。

转化成数组,再这样做就好了 反正也不麻烦

        methods: {
            onDeleteCard(item) {
                this.Carditem[item]=undefined
            },
        }

这样写就好了,你Carditem是个对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题