Javascript 给定一个JSON对象,如何基于键查找项?
给定一个JSON对象,如:Javascript 给定一个JSON对象,如何基于键查找项?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,给定一个JSON对象,如: var data = {items: [ {value: "21", name: "Mick Jagger"}, {value: "43", name: "Johnny Storm"}, {value: "46", name: "Richard Hatch"}, {value: "54", name: "Kelly Slater"}, {value: "55", name: "Rudy Hamilton"}, {value: "79", name: "Michael
var data = {items: [
{value: "21", name: "Mick Jagger"},
{value: "43", name: "Johnny Storm"},
{value: "46", name: "Richard Hatch"},
{value: "54", name: "Kelly Slater"},
{value: "55", name: "Rudy Hamilton"},
{value: "79", name: "Michael Jordan"}
]};
我怎样才能做这样的事情:
datagood = data.where(value == 55)
JS/jQuery是否可以实现类似的功能?谢谢jLinq 可用于过滤阵列:
var datagood = $.grep(data.items, function (item) {
return item.value == 55;
});
如果您想要更强大的实用程序,请查看
或者,对于数组/对象操作也很有用。var data={items:[
var data = {items: [
{value: "21", name: "Mick Jagger"},
{value: "43", name: "Johnny Storm"},
{value: "46", name: "Richard Hatch"},
{value: "54", name: "Kelly Slater"},
{value: "55", name: "Rudy Hamilton"},
{value: "79", name: "Michael Jordan"}
]};
// using underscore.js http://documentcloud.github.com/underscore/
var t = _(data.items).find(function(x) {
return x.value == 55;
});
JSON.stringify(t) ; //# => {"value":"55","name":"Rudy Hamilton"}
// using pure javascript
var find = function(items, f) {
for (var i=0; i < items.length; i++) {
var item = items[i];
if (f(item)) return item;
};
}
t = find(data.items, function(x) {return x.value == "55";});
JSON.stringify(t) ; //# => {"value":"55","name":"Rudy Hamilton"}
{值:“21”,名称:“Mick Jagger”},
{值:“43”,名称:“Johnny Storm”},
{值:“46”,名称:“Richard Hatch”},
{值:“54”,名称:“Kelly Slater”},
{值:“55”,名称:“鲁迪·汉密尔顿”},
{值:“79”,名称:“迈克尔·乔丹”}
]};
//使用下划线.jshttp://documentcloud.github.com/underscore/
var t=389;(data.items).find(函数(x){
返回x.value==55;
});
JSON.stringify(t);/#=>{“value”:“55”,“name”:“Rudy Hamilton”}
//使用纯javascript
var find=函数(项,f){
对于(变量i=0;i{“value”:“55”,“name”:“Rudy Hamilton”}
您可以使用或库u.where()和u.find()函数:
var res1 = _.where(data.items,{value:"55"});
var res2 = _.find(data.items,{value:"55"});
这两个函数之间的区别是u.where()返回所有匹配的记录,而u.find()只返回第一条记录
var数据={项:[
{值:“21”,名称:“Mick Jagger”},
{值:“43”,名称:“Johnny Storm”},
{值:“46”,名称:“Richard Hatch”},
{值:“54”,名称:“Kelly Slater”},
{值:“55”,名称:“鲁迪·汉密尔顿”},
{值:“79”,名称:“迈克尔·乔丹”},
{值:“55”,名称:“另一个鲁迪·汉密尔顿”}
]};
var res1=551; where(data.items,{value:“55”});
var res2=2;.find(data.items,{value:“55”});
document.write('-.where():',JSON.stringify(res1),'
');
document.write('-.find():',JSON.stringify(res2),'
')代码>