javascript - 无法为我的函数创造合适的回报
问题描述
我必须创建一个function
检查单词是否为回文的。我的推理是逐个字母、正常和反向分解单词,然后比较两个结果来确定一个单词是否是回文。用if - else
我给用户一个完美地告诉结果的警报。现在,我了解到大多数函数必须有一个return
包含所需结果的变量。在这种情况下我真的不能拥有这个,我认为它可以这样完美地工作。我试过了
var palindromeResult = (leftToRightWord == rightToLeftWord) ? 'true':'false';
console.log(palindromeResult);
return palindromeResult;
但它只适用于开发人员,如果他在控制台中读取 console.log,但这对我来说是一个糟糕的解决方案......你有比这更好的主意吗?function
在我的完整代码下方
function isPalindrome(wordToCheck) {
for(var i = 0; i < wordToCheck.length; i++) {
var leftToRightWord = wordToCheck[i];
console.log('Left ' + leftToRightWord);
}
for(var j = wordToCheck.length - 1; j >= 0; j--) {
var rightToLeftWord = wordToCheck[j];
console.log('Right ' + rightToLeftWord);
}
if ( leftToRightWord === rightToLeftWord) {
alert('La parola è palindroma');
} else {
alert('La parola non è palindroma');
}
编辑:最后我改变了很多我的代码以获得更好的易读性。
//Data
var userWord;
//I ask a word to the user
do {
userWord = prompt("Dimmi una parola");
} while (userWord.length === 0)
//Here the result of the function is saved and it can be reused
var functionResult = isPalindrome(userWord);
console.log (functionResult);
//Function to know if the word inserted is a palindrome or not
//the cycle with rightToLeft reverse the word so it can be compared to the normal word
//A pop-up will give the solution so it can be seen clearly on your screen
//The function result will ben saved outside the function in var functionResult so it can be seen with a console.log or reused for whatever use
function isPalindrome(wordToCheck) {
var rightToLeftWord = '';
for(var j = wordToCheck.length - 1; j >= 0; j--) {
rightToLeftWord = rightToLeftWord + wordToCheck[j];
}
console.log(rightToLeftWord);
var palindromeResult = wordToCheck == rightToLeftWord;
alert(palindromeResult);
return palindromeResult;
}
现在 for 循环不再有问题,正如您向我指出的那样,它可以正确识别一个单词是否是回文。
解决方案
见片段。该函数返回答案,然后您可以提醒它、将其分配给一个变量、在页面上回显它等等。我不太确定您的算法,因为它告诉我“abracadabra”是回文,但事实并非如此。RTL 字母的顺序是错误的!
function isPalindrome(wordToCheck) {
for (var i = 0; i < wordToCheck.length; i++) {
var leftToRightWord = wordToCheck[i];
console.log('Left ' + leftToRightWord);
}
for (var j = wordToCheck.length - 1; j >= 0; j--) {
var rightToLeftWord = wordToCheck[j];
console.log('Right ' + rightToLeftWord);
}
if (leftToRightWord === rightToLeftWord) {
return 'La parola è palindroma';
} else {
return 'La parola non è palindroma';
}
}
alert(isPalindrome('abracadabra'));
推荐阅读
- r - 从 R 中的 JSON 文件中拆分数据的巨大问题
- azure - 如何使用 CLI 创建具有 enpoint 类型 Azure Function 的事件订阅?
- python - 覆盆子:没有名为 flask_api 的模块
- python - to_sql() 缺少 1 个必需的位置参数:'con'
- linux - 已解决:使用 RSA 令牌通过主机到网络上的服务器的 Docker 容器隧道
- c# - 在 Visual Studio 2019 上使用 Bunifu 框架
- wso2 - java.lang.ClassCastException:java.util.ArrayList 无法转换为 org.wso2.carbon.apimgt.impl.dto.VerbInfoDTO
- javascript - 如何从输入中获取图像的正确位置并使用 javascript 显示它?
- apache - 使用“.conf”文件使所有子域指向单个文件/文件夹
- pymongo - 'NoneType' 对象不可下标 pymongo