Фильтрация массива простых чисел по vue - PullRequest
0 голосов
/ 25 июня 2019

У меня есть произвольный массив чисел, сгенерированный случайным образом с помощью v-for, я также хочу иметь возможность фильтровать его, записывая нужные числа на входе, я делаю это с помощью ванильного JS filter()метод.Однако он возвращает ошибку

TypeError: "num.includes is not a function"

Я не знаю, что я делаю не так, вот HTML:

    new Vue({
      el: "#app",
      data: {
        numberArray: [],
        searching: ''
      },
      methods: {
        random() {
          this.numberArray = Array.from({
            length: 40
          }, () => Math.floor(Math.random() * 40));
        },
        search(){
        return this.numberArray.filter((num) => num.includes(this.searching));
        }
      }
    })
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

 <div id="app">
      <button @click="random()">
    Generate
    </button>
      <hr>
        <input type="search" v-model="searching" placeholder="search">
      <ul>
        <li v-for="num in search">
          {{ num }}
        </li>
      </ul>
      </div>

1 Ответ

1 голос
/ 25 июня 2019

includes() - это функция, определенная для строк и массивов, а не чисел.

Также search должно быть вычисляемым свойством, а не методом.

Вы имели в виду это сделать:

computed: {
  search() {
    return this.numberArray.filter(num => String(num).includes(this.searching));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...