添加和删除数组中的元素
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)
有 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)