Проверьте, имеет ли какой-либо вложенный объект значение true, и установите для него значение false при нажатии в Vue

#javascript #vue.js

#javascript #vue.js

Вопрос:

у меня есть кнопка в шаблоне, если я нажму на нее, она должна проверить все значения isActive.

Если какое-либо значение найдено true, его следует изменить на false.

Мой скрипт Vue выглядит следующим образом:

 data: function() {
  return {
    rates: {
       a: {
           x: [40, 60],
           isActive: false
       },
       b: {
           x: [66, 76],
           isActive: false
       },
       c: {
           x: [76, 108],
           isActive: false
       }
    }
  }
},
methods: {
  changeToFalse() {
     // This is method
  }
}
  

Мой шаблон выглядит следующим образом:

 <template>
  <div>
    <button @onclick="changeToFalse()"> Click Me </button>
  </div>
</template>
  

Примечание: Все должно быть в методе changeToFalse(), который я создал также, чтобы цикл выполнялся только в этом методе.

Спасибо 🙂

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

1. и где ваша changeToFalse функция, которую вы упомянули?

2. отредактировано, пожалуйста, проверьте сейчас.

Ответ №1:

Вы можете просто добавить это в свой код в своем методе ()

 changeToFalse() {
     // This is method
       for(let active in this.rates) {
          if(this.rates[active].isActive == true) {
                this.rates[active].isActive = false
             }
         console.log(this.rates[active].isActive)
     }
  }
  

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

1. зачем вам вообще проверять? просто this.rates.forEach(i => i.isActive = false)

2. Вы бы преобразовали свой объект в массив? Да, тогда это должно сработать masteringjs.io/tutorials/fundamentals /… .