[英]filter in a json and response with another json
I need to filter a JSON like this: 我需要像这样过滤一个JSON:
{
"suggestions":[
"futebol brasileiro",
"futebol americano",
"futebol",
"musica",
"musicas",
"musica inedita de raul",
"politica entre dilma e aecio",
"politica",
"politica macroeconomica"
]
}
When I type "pol" in a input field, I need to get this JSON: 当我在输入字段中键入“ pol”时,我需要获取以下JSON:
{
"suggestions":[
"politica entre dilma e aecio",
"politica",
"politica macroeconomica"
]
}
How can I do that using pure Javascript? 如何使用纯Javascript做到这一点?
I did that in JQuery: 我在JQuery中做到了:
var url = "/busca/suggests/?q="+query;
$.getJSON(url, function (data) {
for(var i=0; i < data.length; i++) {
people[i] = accent_fold(data[i]);
}
});
//Case insensitive search for our people array
var results = $.grep(people, function(item){
return item.search(RegExp(query, "i")) != -1;
});
If you can use ECMAScript 5... 如果可以使用ECMAScript 5 ...
Otherwise: Polyfill for Array.prototype.filter()
否则:
Array.prototype.filter()
Polyfill
(function() { var base = { "suggestions": [ "futebol brasileiro", "futebol americano", "futebol", "musica", "musicas", "musica inedita de raul", "politica entre dilma e aecio", "politica", "politica macroeconomica" ] }; var myResults = {}; var txtBox = document.getElementById("search"); var myDisplay = document.getElementById("displayResults"); txtBox.onkeyup = getResults; function getResults() { var myInput = txtBox.value; myDisplay.innerHTML = ""; var re = new RegExp(myInput, "gi"); myResults.suggestions = base.suggestions.filter(function(ele) { return ele.search(re) != -1; }); if (myResults.suggestions != "") { myDisplay.innerHTML = JSON.stringify(myResults); } } })();
#displayResults { margin-top: 20px; } #displayResults { font-family: sans-serif; }
<input type="text" id="search" placeholder="Type your search" /> <div id="displayResults"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.