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>