Javascript 如何从vue js中的阵列中删除选定数据?
我需要从阵列中拼接数据,为此我使用了以下方法: Html: 在这里,我将一个元素从一个选择框转移到另一个选择框,为此,我使用Javascript 如何从vue js中的阵列中删除选定数据?,javascript,html,vue.js,vuejs2,Javascript,Html,Vue.js,Vuejs2,我需要从阵列中拼接数据,为此我使用了以下方法: Html: 在这里,我将一个元素从一个选择框转移到另一个选择框,为此,我使用concat添加到另一个选择框,并使用splice删除该元素。。在这之前一切都很好。但是,当我拼接时,它是按照0,1,2的顺序拼接的,我需要基于该特定元素的索引号进行拼接。很明显,我可以按任何顺序选择和删除该元素,该特定元素需要被删除并转移到第二个选择框中,而现在,如果我按原样的顺序删除它,其工作正常,但如果我更改顺序并拼接它,则其不工作。同样,当我选择多个元素并删除时,同
concat
添加到另一个选择框,并使用splice
删除该元素。。在这之前一切都很好。但是,当我拼接
时,它是按照0,1,2
的顺序拼接的,我需要基于该特定元素的索引号进行拼接。很明显,我可以按任何顺序选择和删除该元素,该特定元素需要被删除并转移到第二个选择框中,而现在,如果我按原样的顺序删除它,其工作正常,但如果我更改顺序并拼接它,则其不工作。同样,当我选择多个元素并删除时,同样的事情也会发生。请帮我解决这个问题
小提琴的链接是,看一看。这应该可以解决您的问题。我不确定我是否正确理解您正在寻找的内容,但请在您的AddFacility中尝试:
addFacilities() {
let i = 0;
for(i; i<this.facilityAvailable.length;i++){
this.selectedFacilities.push(this.facilityAvailable[i]);
this.availableFacilities = this.availableFacilities.filter(facilities => facilities.value != this.facilityAvailable[i].value);
}
}
addFacilities(){
设i=0;
for(i;i facilities.value!=此.facilityAvailable[i].value);
}
}
如果这是您想要的,您可以在删除部分执行类似的操作您在方法中的
索引中得到的只是标准的MouseEvent
object.addFacilities(){var that=this;console.log(that);-在普通js中,这应该是选定的元素,但在vue中不确定。@connexo通过删除索引更新了我的fiddle。。您所指的解决方案本质上不同。它使用列表,而不是选择元素。创建列表时,作者在items中为它指定了v-for=“(项,索引)”
并为每次迭代创建了一个按钮。您有一个完全在迭代块之外的按钮,因此索引在您期望的位置将不可用。@connexo,我明白了您的意思,现在我已经更新了它,获得了availableFacilities的值。但我认为我采用的方法是错误的。
new Vue({
el: "#app",
data: {
facilityAvailable: [],
facilitySelected:[],
availableFacilities: [{
value: 0,
label: 'Double (Non a/c)'
},
{
value: 1,
label: 'Premium Double (a/c)'
},
{
value: 2,
label: 'Standard Double (a/c)'
}
],
selectedFacilities: [],
},
methods: {
removeFacilities() {
this.availableFacilities = this.facilitySelected.concat(this.availableFacilities);
this.selectedFacilities.splice(this.availableFacilities.value,1);
},
addFacilities() {
this.selectedFacilities = this.facilityAvailable.concat(this.selectedFacilities);
this.availableFacilities.splice(this.selectedFacilities.value,1);
}
}
})
addFacilities() {
let i = 0;
for(i; i<this.facilityAvailable.length;i++){
this.selectedFacilities.push(this.facilityAvailable[i]);
this.availableFacilities = this.availableFacilities.filter(facilities => facilities.value != this.facilityAvailable[i].value);
}
}