У меня есть простой вопрос, и я не уверен, почему содержимое массива не возвращается должным образом. Я почти уверен, что это что-то простое, но почему-то я не получаю желаемых результатов. Сценарий заключается в том, что переменная «compare» устанавливается на значение, например. «apple», и я зацикливаюсь в массиве, и, если яблоко соответствует индексу, напечатайте его в текстовое поле. Он этого не делает, и он всегда говорит «не то же самое» значение. Для знаковой собаки это работает. Похоже, что он достигает последнего массива, а затем выполняет сравнения. Помоги пожалуйста.Цитирование в массиве Javascript
Код ниже
<!DOCTYPE html>
<html>
<body>
<script>
function myFunction() {
var text = "";
var i;
var arr = ["apple", "banana", "carrot", "dog"];
var compare = "apple";
for (i = 0; i < arr.length; i++) {
if (arr[i] == compare) {text = "The value is " + arr[i] + "<br>"; }
else if (compare == "" || compare == null) { text = "The value is blank"; }
else if (arr[i] != compare) {text = "not the same"; }
else {text ="some error";}
}
document.getElementById("demo").innerHTML = text;
}
</script>
<p>Click the button to do a loop with a break.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
Он будет работать, если 'apple' был последним элементом массива. Это помогает? – Bergi
Боковое примечание: ваш последний 'else' никогда не будет использоваться, потому что ваши предыдущие условия охватывают все возможности. В частности, у вас есть 'if (arr [i] == compare)' и 'if (arr [i]! = Compare)'. Если вы не сравнили с «NaN» (у которого необычное поведение никогда не было либо '==' или '! =' Ни к чему), одно из этих двух будет истинным. –