在Javascript对象中查找特定值

时间:2013-09-25 20:15:13

标签: javascript search object

我谦卑地寻求帮助。我正在开发一个项目,我需要在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”,这将允许我的用户快速查看他们需要查看哪一个结果。

提前感谢您的协助!

1 个答案:

答案 0 :(得分:0)

根据您的描述,我更改了函数以查看类似于对象的树,并能够选择包含所有提供的key-value对的对象。此外,它允许您指定要在匹配的对象上输出额外参数。 (例如iddescription

这是代码和示例 http://jsfiddle.net/hjhQz/