我有一个包含城市名称的数组
var name = {"john","johnny","nash","roni","ron"};
现在我想使用 mysql like
的功能,就像 google 一样,当假设用户输入 j
我想返回 "john","johnny “
,如何实现这个,我尝试的是仅在输入 “john”
“john”
`
$('#student_name').keyup(function(){
var name = $('#student_name').val();
$('#suggestion').text(findStu(name,names));
});
function findStu(val,obj){
var arr,name;
for(var i in obj){
if(typeof obj[i] === "object" && obj[i] instanceof Array){
arr = obj[i];
arr.forEach(function(a){
if(a === val) name = i;
});
}
}
return name;
}
`
最佳答案
可以使用js原型(prototype).filter()
。
它映射数组,并根据真/假语句返回元素。然后,您可以使用 indexOf()
执行基本字符串搜索。
它会像这样工作:
var filtered = names.filter(function(str) {
return str.indexOf(str_to_search) != -1;
});
这将为您提供一个过滤数组,仅包含与 str_to_search
变量匹配的名称。
MDN Array.prototype.filter Docs
在下面的代码片段中查看它的工作情况:
var names = ["john","johnny","nash","roni","ron"];
var str_to_search = 'j';
var filtered = names.filter(function(str) {
return str.indexOf(str_to_search) != -1;
});
alert(filtered);
关于javascript - sql "like"在 javascript 数组或 php 数组中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25901433/