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/编程的基本知识,否则像这样的“简单”的事情会一次又一次地发生。我的意思是,你在八小时内第二次在递归调用前忘记了返回。非常感谢!我试图返回函数,但它意外地中断了执行。你的例子帮了我很多!!!如果这不是你的负担,你能像那样重写函数吗?也许我的递归函数可以更短或更简单。我没有多少经验