[英]Code returns undefined instead of return value
我有字符串101000或1010100,其中我尝试使用功能remove data递归替换100。 当字符串替换为值100时,函数removeata应该在字符串为空时返回“是”,而在字符串非空时返回“否”。
它对于字符串1010100正常工作。它返回“ no”,但对于字符串101000返回空则不返回。
console.log(removedata("1010100")); console.log(removedata("101000")); function removedata(data) { data = data.replace("100", ""); if (data.length == 0) { return "yes"; } else { if (data.indexOf("100") > -1 && data.length > 0) { removedata(data); } else { return "no"; } } }
当1010100时返回no,但当101000时返回undefined
您需要return
递归调用:
console.log(removedata("1010100")); console.log(removedata("101000")); function removedata(data) { data = data.replace("100", ""); if (data.length == 0) { return "yes"; } else { if (data.indexOf("100") > -1 && data.length > 0) { return removedata(data); } else { return "no"; } } }
现在,它为第二个返回yes
,因为所有100
s已被删除并且字符串为空。
function removedata(data) {
data = data.replace("100", "");
if (data.length == 0) {
return "yes";
} else {
if (data.indexOf("100") > -1 && data.length > 0) {
removedata(data); // This branch does not return anything
} else {
return "no";
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.