未定义,但我想在循环中使用 else 语句并显示"不存在"



我如何使用下面的else语句,希望将undefined替换为"不存在",已尝试但不起作用。程序:检查给定字符串是否包含指定字符的2到4个数字

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

严格来说,您不需要else。记下该字符在字符串中出现的次数。如果计数>=2和<=4返回";存在";否则只返回";不存在";。

您应该避免使用document.write。这个示例有一个额外的函数,它使用checkChar函数返回的字符串创建一些HTML,然后使用insertAdjacentHML将其添加到页面中。

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; }

试试这个:

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';
}

最新更新