2017-10-24 5 views
-1

申し訳ありませんが、フォーマットが厄介です。私はこのパリンドームチェックプログラムを書いており、なぜそれがいつも真実を返すのか理解できません。 「単語」はhtmlを介した摂取量を表し、「reportIfPalindrome」も同様です。値は取り込まれて表示され、htmlに問題はありません。どんな助けもありがたいですPalindromeプログラムが常にTrueを返すかどうかを調べる

const wordBox = document.getElementById('word'); 

wordBox.addEventListener('input', checkIfPalindrome); 

function checkIfPalindrome() { 

    const word = wordBox.value; 
    const allCaps = word === word.toUpperCase(); 
    const outsideTrim = allCaps === word.trim(); 
    let completelyTrimmed = ""; 
    let individualCharacter = ""; 

    for(x=0; x<outsideTrim.length; x++) 
    { 
     individualCharacter = outsideTrim.substring(x, x+1) 
     completelyTrimmed+= individualCharacter === " "? "": individualCharacter; 
    } 

    let reverseString = "" 
    for (x=completelyTrimmed.length-1; x>=0; x--){ 
     reverseString = completelyTrimmed.substring(x, x+1); 
    } 

    let result = completelyTrimmed===reverseString; 
    document.getElementById('reportIfPalindrome').innerHTML = result; 

} 
+1

あなたはこのロット 'constのallCaps =単語=== word.toUpperCase()のようなものを行う、右の平等をテストして、あなたのVARに割り当て'、。あなたのヴァールの多くはブーリアンになります。私はこれがあなたが望むものではないと確信しています。また、あなたの関数は実際に何かを返すわけではありません。 – Octopus

+0

私はあなたのアドバイスを使用して動作するようになった。どうもありがとう。 :) –

答えて

1

あなたのコードにはかなりの欠陥があります。まず、大文字と小文字の単語を格納していると思われる変数のブール値を格納しています。第2に、右の境界条件でループを実行していません。下記の最新のスニペットをご覧ください。

checkIfPalindrome(); 
 
function checkIfPalindrome() { 
 

 
    const word = "aBa"; 
 
    const allCaps = word.toUpperCase(); 
 
    const outsideTrim = allCaps.trim(); 
 
    let completelyTrimmed = ""; 
 
    let individualCharacter = ""; 
 

 
    for(x=0; x<outsideTrim.length; x++) 
 
    { 
 
     individualCharacter = outsideTrim.substring(x, x+1) 
 
     completelyTrimmed+= individualCharacter === " "? "": individualCharacter; 
 
    } 
 

 
    let reverseString = "" 
 
    for (x=completelyTrimmed.length-1; x>=0; x--){ 
 
     reverseString = reverseString + completelyTrimmed.substring(x, x+1); 
 
    } 
 

 
    let result = completelyTrimmed===reverseString; 
 
    //document.getElementById('reportIfPalindrome').innerHTML = result; 
 
    console.log(result); 
 

 
}

関連する問題