我谦卑地寻求帮助。我正在开发一个项目,我需要在Object中设置搜索以查找所有实例,其中特定值等于用户搜索的任何术语。我找到了以下代码:
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(getObjects(obj[i], key, val));
} else if (i == key && obj[key] == val) {
objects.push(obj);
}
}
return objects;
}
here(为了确保给予适当的信任),这很有效,但我正在寻求一些帮助来扩展此代码的功能,以包括一次搜索多个元素的能力并且,在返回时,在返回的相同对象中显示其他值。例如,使用上面的代码返回的只是[Object]:
我希望做的是将[> Object]附加到Object的另一个变量值,可能是ID或Description,它们都是返回结果的一部分。因此,期望的结果将类似于“Object:ID = b01”或“Object:Desc = This is Maple”,这将允许我的用户快速查看他们需要查看哪一个结果。
提前感谢您的协助!
答案 0 :(得分:0)
根据您的描述,我更改了函数以查看类似于对象的树,并能够选择包含所有提供的key-value
对的对象。此外,它允许您指定要在匹配的对象上输出额外参数。 (例如id
和description
)
这是代码和示例 http://jsfiddle.net/hjhQz/