2016-07-19 4 views
0

У меня есть массив JSON, как этотКак осуществить поиск внутри массива JSon

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

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

+0

Как насчет 'Массив # filter'? – Rayon

+1

Вы уже что-то пробовали? Вам нужно выполнить поиск по нескольким свойствам (имя, фамилия и т. Д.)? –

+0

Если вы примените datatable, он встроен в поле поиска. – C2486

ответ

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

, если вы хотите нечеткий поиск, я предлагаю вам перейти с https://github.com/bripkens/fuzzy.js – Christian