Как реализовать поиск внутри массива json [duplicate]

0

У меня есть json-массив, подобный этому

[
  {"Id":1,
  "Name":"John"
  }, 
  {"Id":2,
  "Name":"Mathew"
  },
   {"Id":3,
  "Name":"Wilfred"
  },
   {"Id":4,
  "Name":"Gary"
  }
]

Используя эти данные, мне нужно реализовать функцию автоматического завершения. поэтому, если я ищу "Wil" я должен получить результат Wilfred. Как я могу сделать такой поиск, похожий на SQL LIKE в массиве JSON

  • 0
    Как насчет Array#filter ?
  • 1
    Вы уже что-то пробовали? Вам нужно искать по нескольким свойствам (Имя, Имя и т. Д.)?
Показать ещё 6 комментариев

1 ответ

2

Использовать Array.prototype.filter

var persons = [{
  "Id": 1,
  "Name": "John"
}, {
  "Id": 2,
  "Name": "Mathew"
}, {
  "Id": 3,
  "Name": "Wilfred"
}, {
  "Id": 4,
  "Name": "Gary"
}]
var searchTerm = "Wil";
var results = persons.filter(function(person) {
  return person.Name.indexOf(searchTerm) > -1;
});
console.log(results);
  • 0
    если вы хотите нечеткий поиск, я предлагаю вам перейти с github.com/bripkens/fuzzy.js

Ещё вопросы

Сообщество Overcoder
Наверх
Меню