Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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/3/android/178.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_Reactjs_Recursion_Ecmascript 6_Nested Object - Fatal编程技术网

Javascript 使用递归函数迭代嵌套对象,返回未定义的

Javascript 使用递归函数迭代嵌套对象,返回未定义的,javascript,reactjs,recursion,ecmascript-6,nested-object,Javascript,Reactjs,Recursion,Ecmascript 6,Nested Object,我需要迭代一个嵌套函数并找到与我想要的键相同的子对象。代码如下: const searchObject = (obj, label) => { const object = Object.keys(obj).forEach(key => { if(label === key) { return obj[key]; } else if(typeof obj[key] === "object

我需要迭代一个嵌套函数并找到与我想要的键相同的子对象。代码如下:

 const searchObject = (obj, label) => {
        const object = Object.keys(obj).forEach(key => {
            if(label === key) {
                return obj[key];
            } else if(typeof obj[key] === "object") {
                const value = searchObject(obj[key], label);
                if(value) return value;
            }
        });
        return object;
    };
我搜索了很多,发现很多人都推荐这种方法,但我不知道为什么我在登录console.log(searchObject(obj,“Intercept”)时会得到未定义的。(我正在使用React框架)


您将在
.forEach
内返回。这是行不通的。需要注意的一点是null也有一种“object”,因此您可能也需要检查它。为什么不在这里发布数据对象,至少是一个示例?不幸的是,map()并没有解决这个问题。大多数时候,它返回未定义的数组,有时它有我正在寻找的对象。但这不应该是正确的方法。您可能需要
Array#find
。你能把你的输入和预期的输出作为一个标签吗?
 const searchObject = (obj, label) => {
        var object = {}
        Object.keys(obj).forEach(key => {
            if(label === key) {
                object = obj[key];
            } else if(typeof obj[key] === "object") {
                const value = searchObject(obj[key], label);
                if(value) object = return value;
            }
        });
        return object;
    };