添加和删​​除数组中的元素

Adding and removing an element in an array

有 2 个切换按钮。如果值为true,则添加到array,否则删除该元素。

数据:

originality: []

切换:

<toggle id='1' ref='toggleOriginal'> Click </toggle>
<toggle id='2' ref='toggleAnalog'> Click </toggle>

方法:

 if(this.$refs.toggleOriginal.isActive) {
    this.originality.push(this.$refs.toggleOriginal.id);
 } else {
    this.originality = this.originality.filter((item) => {
      return item == this.$refs.toggleOriginal.id;
   });
 }

 if(this.$refs.toggleAnalog.isActive) {
    this.originality.push(this.$refs.toggleAnalog.id);
  } else {
    this.originality = this.originality.filter((item) => {
      return item == this.$refs.toggleAnalog.id;
    });
  }

第二个也一样。在 isActive 中,我检查 true / false。 问题是,如果两个切换是 true 而我想将其中一个转换为 false,那么错误的元素将被删除。也许您应该使用不同的功能?

要使用过滤器从数组中删除,您应该测试不相等性。您的示例使用相等性,这将删除除您的项目之外的所有项目。

this.originality = this.originality.filter((item) => {
      return item !== this.$refs.toggleOriginal.id;
   });

或拼接

const index = this.originality.indexOf(this.$refs.toggleOriginal.id)
this.originality.splice(index, 1)