Поиск подстроки нокаутом js - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь отфильтровать массив и проверить, содержит ли какой-либо из заголовков в моем массиве то, что ищет пользователь. Тем не менее, когда я запускаю функцию, кажется, что проверяется, точно ли поиск соответствует заголовку, а не если включена подстрока.

JS

var viewModel = function() {
var self = this;
self.filter = ko.observable('');
self.locationList = ko.observableArray(model);
self.filterList = function(){

    return ko.utils.arrayFilter(model, function(location) {

       if(self.filter().includes(location.title)){
          console.log(location.title)
       }

    });
  };
}

HTML

<div class="col-lg-12">
  <div class="input-group">
    <input data-bind="textInput: filter, event:{keyup: filterList}"
    type="text" class="form-control" placeholder="Filter Places"
    aria-describedby="basic-addon2" id="test">
    <button id="basic-addon2">Filter</button>
   </div>
 </div>

1 Ответ

0 голосов
/ 10 мая 2018

Проблема в этой части if(self.filter().includes(location.title)){

Здесь вы проверяете, содержит ли искомый ключ один из заголовков в массиве. Вместо этого вы должны проверить иначе

if(location.title.includes(self.filter())){

Вы можете использовать простые .filter и .includes для этого

var filterdList = self.locationList.filter(e=> e.includes(self.filter()))
...