Javascript查找匹配值的键,就像SQL中的查询一样
Javascript find keys for the matched values as like query in SQL
我想使用JavaScript来查找匹配值的键,就像SQL中的查询一样。假设我有以下json数据:
{"100":"Jaipur","101":"Delhi","102":"Raipur","104":"Goa"}
如果输入:
"pur"
输出应为:
{"100":"Jaipur","102":"Raipur"}
提前谢谢。
使用for-in
循环遍历object
。如果目标字符串中搜索到的indexOf
字符串大于-1
,则该字符串中存在搜索值。
试试这个:
var input = {
"100": "Jaipur",
"101": "Delhi",
"102": "Raipur",
"104": "Goa"
};
var needle = "pur";
var op = {};
for (var i in input) {
if (input[i].indexOf(needle) > -1) {
op[i] = input[i];
}
}
console.log(op);
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
我写了一个小函数,也许它能帮助你
var data = {"100":"Jaipur","101":"Delhi","102":"Raipur","104":"Goa"};
function search(data, text){
var items = {};
for(var i in data){
if(data.hasOwnProperty(i) && data[i].indexOf(text) !== -1){
items[i] = data[i];
}
}
return items;
}
console.log(search(data, 'pur'));
试试小提琴:https://jsfiddle.net/oe9kc8ne/
您可以使用Array#forEach
对对象的键进行迭代,并执行String#match
,如果找到,则将属性添加到结果对象中。
var data = {"100":"Jaipur","101":"Delhi","102":"Raipur","104":"Goa"},
result = function (data, search) {
var r = {};
Object.keys(data).forEach(function (k) {
if (data[k].match(search)) {
r[k] = data[k];
}
});
return r;
}(data, 'pur');
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何处理node.js节点mongodb中的连接和查询队列
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- 将curl查询转换为jQuery.ajax()
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 触发媒体查询断点时刷新页面
- 使用DynamoDB查询返回
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- 如何将PHP get查询转换为Meteor's HTTP.get()
- AngularJS:获取链接中没有哈希的查询字符串值
- 捕获初始RedQueryBuilder查询中的SQL问题
- AngularJS,如何更改查询字符串
- Javascript查找匹配值的键,就像SQL中的查询一样
- 尝试使用查询删除iframe ID,同时像Facebook一样单击
- jQuery在元素中搜索文本就像SQL查询一样
- Sequelize可以跟踪查询信息,或者像mongoose一样有setGlobalTraceFunction
- 如何在Java代码中使用JavaScript表达式进行MongoDB查询,就像在MongoShell中一样