0

我谦虚地请求帮助。我正在做一个项目,我需要设置一个搜索来查找所有实例,在一个特定值等于用户正在搜索的任何术语的对象内。我找到了以下代码:

    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;
}

在这里(以确保给出适当的信用),效果很好,但我正在寻找一些帮助来扩展此代码的功能,以包括一次搜索多个元素的能力,以及在返回时, 在返回的相同对象中显示其他值。例如,使用上面的代码,返回只是 [Object]:

我希望做的是在 [>Object] 中附加来自 Object 的另一个变量值,可能是 ID 或 Description,它们都是返回结果的一部分。因此,所需的结果将类似于“Object: ID=b01”或“Object: Desc = This is Maple”,这将允许我的用户快速查看他们需要查看的结果之一。

预先感谢您的协助!

4

1 回答 1

0

根据您的描述,我已经更改了函数以查看树状对象,并能够挑选出包含所有提供的key-value对的对象。此外,它允许您指定要在匹配的对象上输出额外参数。(像idand description

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

于 2013-09-25T20:58:27.793 回答