Javascript 我是不是错过了什么,或者这种行为对我来说很奇怪;“如果”语句;?

Javascript 我是不是错过了什么,或者这种行为对我来说很奇怪;“如果”语句;?,javascript,typescript,Javascript,Typescript,我无法从函数返回值。没有什么新奇或复杂的东西。我只需要运行我的HTMLElements并返回我需要的内容 这是我第一次想到它,我花了很多时间修改代码,试图以不同的方式返回它,或者至少理解它不起作用的原因 我将感谢您的帮助和理解 下面的代码段包括我从使用RXjs-fromEvent 我相信代码本身是非常明确的,但是如果您需要更多的信息,我将包括我的整个代码 function findElementByDataValue(target: EventTarget, data: {key: string

我无法从函数返回值。没有什么新奇或复杂的东西。我只需要运行我的
HTMLElements
并返回我需要的内容

这是我第一次想到它,我花了很多时间修改代码,试图以不同的方式返回它,或者至少理解它不起作用的原因

我将感谢您的帮助和理解

下面的代码段包括我从使用
RXjs-fromEvent

我相信代码本身是非常明确的,但是如果您需要更多的信息,我将包括我的整个代码

function findElementByDataValue(target: EventTarget, data: {key: string, value: string}){
  // trying to return by a function
  function send(element) {
    return element;
  }

  if(target && target.dataset){

    if(target.dataset[data.key] === data.value) {
      // console.log(target);
      // send(target);
      return target;
    } else {
      if(target.children){
        for (const child in Object.entries(target.children)) {
          const element = target.children[child];

          findElementByDataValue(element, data);
        }
      }
    }
  }
}

*在线调用函数:
65
*函数在线:
34

如果找到某个对象,则返回
findElementByDataValue
调用,否则在
else
中,递归调用将不起任何作用:

function findElementByDataValue(target: EventTarget, data: {key: string, value: string}){
  // trying to return by a function
  function send(element) {
    return element;
  }

  if(target && target.dataset){

    if(target.dataset[data.key] === data.value) {
      // console.log(target);
      // send(target);
      return target;
    } else {
      if(target.children){
        for (const child in Object.entries(target.children)) {
          const element = target.children[child];

          const result = findElementByDataValue(element, data);
          if (result) {
            return result;
          }
        }
      }
    }
  }
}

递归调用
findElementByDataValue(元素,数据)之前缺少
return
这是否回答了您的问题?同样的故事?@ASDFGerte已经通过下面的例子解决了。这就是为什么上次我不是很开心。。。你需要回顾一下关于JS/编程的基本知识,否则像这样的“简单”的事情会一次又一次地发生。我的意思是,你在八小时内第二次在递归调用前忘记了返回。非常感谢!我试图返回函数,但它意外地中断了执行。你的例子帮了我很多!!!如果这不是你的负担,你能像那样重写函数吗?也许我的递归函数可以更短或更简单。我没有多少经验