Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从vue js中的阵列中删除选定数据?_Javascript_Html_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 如何从vue js中的阵列中删除选定数据?

Javascript 如何从vue js中的阵列中删除选定数据?,javascript,html,vue.js,vuejs2,Javascript,Html,Vue.js,Vuejs2,我需要从阵列中拼接数据,为此我使用了以下方法: Html: 在这里,我将一个元素从一个选择框转移到另一个选择框,为此,我使用concat添加到另一个选择框,并使用splice删除该元素。。在这之前一切都很好。但是,当我拼接时,它是按照0,1,2的顺序拼接的,我需要基于该特定元素的索引号进行拼接。很明显,我可以按任何顺序选择和删除该元素,该特定元素需要被删除并转移到第二个选择框中,而现在,如果我按原样的顺序删除它,其工作正常,但如果我更改顺序并拼接它,则其不工作。同样,当我选择多个元素并删除时,同

我需要从阵列中拼接数据,为此我使用了以下方法:

Html:

在这里,我将一个元素从一个选择框转移到另一个选择框,为此,我使用
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);
    }
}