Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript对象中查找特定值_Javascript_Search_Object - Fatal编程技术网

在Javascript对象中查找特定值

在Javascript对象中查找特定值,javascript,search,object,Javascript,Search,Object,我谦恭地请求帮助。我正在做一个项目,在这个项目中,我需要设置一个搜索来查找对象中的所有实例,其中一个特定值等于用户正在搜索的任何术语。我找到了以下代码: function getObjects(obj, key, val) { var objects = []; for (var i in obj) { if (!obj.hasOwnProperty(i)) continue; if (typeof obj[i] == '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;
}
(以确保给予适当的信任),这非常有效,但我正在寻求一些帮助,以扩展此代码的功能,包括一次搜索多个元素的能力,以及在返回时显示正在返回的相同对象中的其他值。例如,使用上述代码返回的值仅为[Object]:

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


提前感谢您的帮助

根据您的描述,我已将函数更改为查看树状对象,并能够挑出包含所有提供的
键值对的对象。此外,它允许您指定要在匹配的对象上输出额外参数。(如
id
description

下面是代码和示例

研究使用JSONPATH,如果他们一次可以搜索多个元素,那么如果对象匹配所有元素或任何元素,是否会将其添加到对象数组中?对不起,应该更具体一些。如果他们在搜索中有多个元素,那么它将是AND而不是OR,所以Alnitak数据源不是JSON对象,因此我必须先转换它,然后才能使用JSONPath。如果这最终是don需要做的,那么我会继续这样做,但我会尽量让这件事尽可能简单。@AndrewR jsonpath处理解析的JSON数据,这恰好是本机JS对象结构。谢谢Tom!我将在明天返回时对其进行测试。还有一个问题,如果我只想返回
id
description
而不是整个原始对象,我将如何更改函数?谢谢我基本上更新了小提琴,唯一的变化是这行
var out={}