[英]How do I create a search which looks for matching data in an array?
I want to create a search box which checks the input and sees if it matches a name of a town. 我想创建一个搜索框,检查输入内容并查看是否与城镇名称匹配。
My data is organised like so (fictitious data btw): 我的数据是这样组织的(虚拟数据顺便说一下):
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375},
}
}
So to clarify: 所以要澄清一下:
var query
var query
var results
var results
if (query === results)
do something eg make an alert if (query === results)
做某事,例如发出警报 Thanks. 谢谢。
Edit: 编辑:
I have been able to make a test as follows: 我已经能够进行如下测试:
$("#search").blur(function() {
var query = $("#search").val();
var results = "hi";
if (query === results) {
alert("booyah");
}
})
This works, however as you can see I don't know how to store the towns in var results
. 这可行,但是如您所见,我不知道如何在
var results
存储城镇。
Edit #2: Would this work? 编辑2:这行得通吗?
$("#search").blur(function() {
var query = $("#search").val();
for (var town in markers.towns) {
if (query !== markers.towns[town]) {
alert("booyah");
}
}
})
first of all, your object is not an array. 首先,您的对象不是数组。 this case could be quite simple:
这种情况可能非常简单:
var coordinates = (function () {
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375},
}
};
return {
find = function (city) {
markers.towns[city] || null;
}
};
})();
the find method will return your value object or null. find方法将返回您的value对象或null。
When I run the following, using a hard-coded query variable, it works fine: 当我使用硬编码的查询变量运行以下命令时,它工作正常:
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375}
}
}
var query = "london"; // Test with different capitalization.
for (var town in markers.towns) {
// If the current town name matches the input field (case insensitive)
if (town.toLowerCase() === query.toLowerCase()) {
alert("booyah");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.