简体   繁体   中英

Getting undefined but i would like to use else statement inside for loop and display 'not exist' instead. please help me to fix

How can i use else statement in the following, would like to replace undefined to 'not exist', tried but not working. program: Check a given string contains 2 to 4 numbers of a specified character

 function check_char(x, y) { for (var j = 0; j < y.length; j++) { var d = y[j]; } for (var i = 1; i <= 3; i++) { data = x[i] console.log(data) if (data == d) { return d + " exist"; } } } document.write(check_char("Python", "y") + "<br>"); document.write(check_char("JavaScript", "a") + "<br>"); document.write(check_char("Console", "o") + "<br>"); document.write(check_char("Console", "C") + "<br>"); document.write(check_char("Console", "e") + "<br>"); document.write(check_char("JavaScript", "S") + "<br>");

**output:** 
y exist
a exist
o exist
undefined
undefined
undefined

Strictly speaking you don't need the else . Keep a count of the number of times the character appears in the string. If the count >= 2 and <= 4 return "exists" otherwise just return "does not exist".

You should avoid using document.write . This example has an extra function that creates some HTML using the string returned from the checkChar function, and then uses insertAdjacentHML to add it to the page.

 function checkChar(str, char) { // Initialise the count let count = 0; // Loop over the string - if the // letter in the iteration is the same as // the character increment the count for (const letter of str) { if (letter === char) ++count; } // If the count is within bounds return "exists" if (count >=2 && count <=4) { return `<span class="red">${char}</span> exists`; } // Otherwise return "does not exist" return `<span class="red">${char}</span> does not exist`; } function write(str) { // Create an HTML paragraph string with the string // returned from `checkChar`, and then add that // to the page const para = `<p>${str}</p>`; document.body.insertAdjacentHTML('beforeend', para); } write(checkChar('Python', 'y')); write(checkChar('JavaScript', 'a')); write(checkChar('Console', 'o')); write(checkChar('Console', 'C')); write(checkChar('Console', 'e')); write(checkChar('JavaScript', 'S'));
 .red { color: red; }

try this,

function check_char(x, y) {
  for (var j = 0; j < y.length; j++) {
    var d = y[j];
  }
  for (var i = 1; i <= 3; i++) {
    data = x[i]
    console.log(data)
    if (data == d) {
      return d + " exist";
    }
  }
  return 'not exist';
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM