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'));
在 fiddle 试试:https://jsfiddle.net/oe9kc8ne/
您可以使用 Array#forEach
over the keys of the object and perform a 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>');
我想使用 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'));
在 fiddle 试试:https://jsfiddle.net/oe9kc8ne/
您可以使用 Array#forEach
over the keys of the object and perform a 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>');