vue, сопоставьте строку в массиве без идентификаторов и удалите, если она совпадает

#javascript #vue.js

Вопрос:

У меня есть простой массив строк, и я вызываю функцию с выпадающими действиями, которая отправит строку, и если она совпадает с одной из строк в массиве, я хочу удалить ее из массива, но я не уверен, как это сделать

Я видел, как я мог бы сделать это с помощью splice, но у меня нет идентификаторов в этом массиве, это только строки. Поэтому мне буквально нужно сопоставить строку и удалить ее на основе этого совпадения строк

Как я могу просто сопоставить и удалить строку из массива?

вот мой код:

 new Vue({  el: "#app",  props: {   },  data: {  tierArray:['one', 'two', 'three'],  },  methods: {  removeTierSelection(value){  console.log('this is what we are removing');  console.log(value.name); //this prints just the string such as "one" or "two", but without the quotes  },  }  })  

Ответ №1:

Вы можете достичь этого, сделав это:

 const removeIndex = this.tierArray.findIndex(tier => tier === value.name)  if (removeIndex === -1) return // means item not found   this.tierArray.splice(removeIndex, 1)  

Ответ №2:

Другим простым подходом было бы

 this.tierArray = [...this.tierArray.filter(tier => tier !== value.name)];