我发现这个搜索对象的功能非常好 - 在正常情况下工作正是我正在寻找的,因为它返回一个符合搜索条件的对象数组。
function getObjects(obj, key, val){
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(arguments.callee(obj[i], key, val));
} else if (i == key && obj[key] == val){
objects.push(obj);
}
}
return objects;
}
正如所说'好又甜'(我认为是这样)但是我真正需要做的就是返回'找到'对象的关键。
示例:
var obj = {'key1':{obj1},'key2':{obj2},'key3':{obj3},'key4':{obj4} }
所以我的'搜索'将是
getObjects(obj, key-to-find, val-to-find)
'搜索'键:值对将是{obj1}或{obj3},即不在'第一'级别。我如何调整上面的函数给我结果
[{'key1':{obj1},'key3':{obj3} }]
建议请。非常感谢