У меня есть простой массив, содержащий голландский город имена:Поиск в массиве, а не только уникальные значения
var cities = ['Amsterdam', 'Den Haag', 'Den Helder', 'Rotterdam', 'Utrecht', 'Groningen', 'Zoetermeer', 'Zwolle', 'Delft'];
Мой код для поиска в массиве выглядит следующим образом:
elems.searchField.on('keyup', function(e) {
var index, city, result;
var currentCity = elems.searchField.val().toLowerCase();
for (index = 0; index < cities.length; ++index) {
city = cities[index].toLowerCase();
if (city.indexOf(currentCity) > -1) {
result = city;
console.log(result);
break;
}
}
});
elems.optionsButton.on('click', function(e) {
if (optionButtonState === 0) {
elems.consoleItemSecondAndThird.css('display', 'flex');
optionButtonState = 1;
} else {
elems.consoleItemSecondAndThird.hide();
optionButtonState = 0;
}
});
Вы можете увидеть два города, которые начинаются с «Ден», это «Ден Хааг» и «Де Хелдер». Когда я набираю «Den», мне нужно увидеть их обоих, однако мой код только ищет уникальные значения и показывает только «Den Haag», когда «Den» вставлен, например. Как я могу отобразить все значения, содержащие поисковый запрос?
Вы получаете только один результат, потому что ваш «результат» переменная дает только один город. Вместо этого вы можете использовать его как массив и продолжить цикл for. например 'result.push (город); continue; ' – getjackx