看到好像是唯一有用的答案已经被引用的第三方库 - 这里是你的本地JavaScript的解决方案。对于任何人,只希望的几行代码,而不是堆栈:
功能:
Array.prototype.findValue = function(name, value){
var array = map(this, function(v,i){
var haystack = v[name];
var needle = new RegExp(value);
// check for string in haystack
// return the matched item if true, or null otherwise
return needle.test(haystack) ? v : null;
});
return array;
}
土生土长.map()
功能:
map = function(array, mapFunction) {
var newArray = new Array(array.length);
for(var i = 0; i < array.length; i++) {
newArray[i] = mapFunction(array[i]);
}
return newArray;
}
你的对象:
(脱脂从您发布的目标):
myObject = {
name : "soccer",
elems : [
{name : "FC Barcelona"},
{name : "Liverpool FC"}
]
},
{
name : "basketball",
elems : [
{name : "Dallas Mavericks"}
]
}
有关使用方法:
(这将搜索您myObject.elems阵列的 '名字' 匹配 'FC')
var matched = myObject.elems.findValue('name', 'FC');
console.log(matched);
结果 - 检查你的控制台:
[Object, Object, findValue: function]
0: Object
name: "FC Barcelona"
__proto__: Object
1: Object
name: "Liverpool FC"
__proto__: Object
length: 2
__proto__: Array[0]
什么是一个JSON对象?你的意思是你有一个JSON *字符串*? – 2009-11-30 15:46:45
他有一个JavaScript对象,当然。我假设他说这是JSON,因为他要求服务器将其作为JSON或JSONP。 :-) – Nosredna 2009-11-30 15:48:37