Javascript vue:拼接在当前图元上不起作用
我有这样一个对象数组:Javascript vue:拼接在当前图元上不起作用,javascript,arrays,vue.js,splice,Javascript,Arrays,Vue.js,Splice,我有这样一个对象数组: daySelected: [ { selectDay: day, time: [ { defaulTimeStart: "08:00", defaultTimeEnd: "00:00", } ] }, { selectDay: day, time: [ {
daySelected: [
{
selectDay: day,
time: [
{
defaulTimeStart: "08:00",
defaultTimeEnd: "00:00",
}
]
},
{
selectDay: day,
time: [
{
defaulTimeStart: "08:00",
defaultTimeEnd: "00:00",
}
]
},
//etc....
];
该阵列由以下功能组成,该功能可在单击时推送对象:
const object = {
selectDay: day,
time: [
{
defaulTimeStart: "08:00",
defaultTimeEnd: "00:00",
},
],
};
this.daySelected.push (object);
到目前为止它是有效的。。。当我要删除当前推送的元素时,会出现问题:
this.daySelected.splice(this.daySelected.indexOf(object), 1);
如果我单击数组末尾的元素以删除它,它会工作,但是如果我单击中间元素或数组开头的元素,它会删除下一个元素…而不是通过
this.daySelected.indexOf(object)
,尝试直接从v-for
指示索引。
您可以使用v-for
迭代daySelected
数组,如下所示:
<div v-for="(obj, index) in daySelected">
...
// use `index` to pass as a parameter of the `splice` method.
... deleteObj(index) ...
...
</div>
...
//使用'index'作为'splice'方法的参数传递。
... 删除对象(索引)。。。
...
...
方法:{
deleteObj(索引){
此.daySelected.splice(索引1);
}
}
...
您如何指示中间元素??对于您知道的对象,这是最后一个元素。或者您知道object
是一个名称。您可以尝试使用Vue.delete()
ref:@Mr.perfectismist:this.$delete(this.daySelected,this.daySelected.indexOf(object))
但它不起作用为什么您一直试图获取indexOf(object)
?您正在最后一次推送对象
。那个么你们希望中间元素怎样删除呢?那个么我怎样才能使用delete呢?我并没有使用v-for,因为我从一个库中获取那个些数据。。。我尝试了:this.daySelected.map(函数(obj,index){returnobject.assign(daySelectedObj,{id:index});})代码>但它不起作用。。。在第一次尝试中,删除正确的代码,然后删除下一个。您可以将整个代码库附加上daySelected.map的使用方式以及删除方法吗?我使用此库=>在更新的代码中,您使用了v-for=“daySelected中的day”
,将其更新为v-for=“(day,index)in daySelected”
,然后在单击事件中选择day.slice(索引,6)
。您可能需要添加单击方法
<script>
...
methods: {
deleteObj(index) {
this.daySelected.splice(index, 1);
}
}
...
</script>