Условный оператор не работает в методе VueJS

#javascript #arrays #methods #vuejs2 #frontend

#javascript #массивы #методы #vuejs2 #интерфейс

Вопрос:

Я пытаюсь добавить условный оператор, поэтому, когда пользователь переключает кнопки, это запускает действие, например, выводит некоторый текст.

Я безуспешно пытался добавить условный метод as и вычисляемое свойство as, также я попытался с помощью оператора switch.

Я добавлю ссылку на codepenhttps://codepen.io/manosx/pen/KELmpj?editors=0010

   clickedTag: function (indexTag) {
      // toggle the active class
      this.$set(this.isClickedTag, indexTag, !this.isClickedTag[indexTag])
      let tagsSelected = _.keys(_.pickBy(this.isClickedTag, _.identity))
      let tagsSelectedSingle = tagsSelected.map(s => `'${s}'`).join(', ')
      console.log(tagsSelectedSingle)
      if (tagsSelectedSingle === '0') { console.log('naylon') }
      else if (tagsSelectedSingle === '1') { console.log('espiga') }
      else if (tagsSelectedSingle === '2') { console.log('omega') }
      else if (tagsSelectedSingle === '3') { console.log('crochet') }
      else if (tagsSelectedSingle === '4') { console.log('thread') }
      else if (tagsSelectedSingle === '5') { console.log('bordado') }
    },
  

Я хотел бы добавить условный оператор, который запускал бы различные действия в зависимости от включенных кнопок.

Комментарии:

1. итак, вы просите поместить какой-нибудь другой код вместо console.log ? вы можете поместить что угодно внутрь этих блоков, вызвать любую функцию, которая вам нравится… итак, mySuperSpecialFunction('naylon') вместо console.log('naylon') — тогда все, что вам нужно сделать, это создать mySuperSpecialFunction , чтобы делать то, что вам нужно (что является неопределенным в вашем вопросе)

2. Не работает оператор If, не удается ничего вывести из консоли. выходные данные журнала

3. ну, tagsSelectedSingle = tagsSelected.map(s => ‘$ {s}’ ).join(', ') предполагает, что tagSelectedSingle вообще не является единственным значением — так что, возможно, вам нужно сохранить его в виде массива и использовать tagSelectedSingle.includes('1') etc

Ответ №1:

Его лучше использовать indexOf() , потому что includes не будет работать в некоторых браузерах.

Попробуйте это.

 if (tagsSelectedSingle.indexOf('0')>=0) { console.log('naylon') }
           if (tagsSelectedSingle.indexOf('1')>=0) { console.log('espiga') }
           if (tagsSelectedSingle.indexOf('2')>=0) { console.log('omega') }
           if (tagsSelectedSingle.indexOf('3')>=0) { console.log('crochet') }
           if (tagsSelectedSingle.indexOf('4')>=0) { console.log('thread') }
           if (tagsSelectedSingle.indexOf('5')>=0) { console.log('bordado') } 
  

Комментарии:

1. Это работает частично, например, когда я включаю первую кнопку, она выводит ‘espiga’, этот результат остается для всех последующих кнопок, если я не отключу первую кнопку. Я хотел бы выводить результат каждой кнопки независимо для остальных действий с кнопками.