Как вернуть true или false для определенного числового значения в массиве?

#javascript

#javascript

Вопрос:

Массив имеет несколько числовых значений, и мне нужно найти значение с нулем посередине, чтобы вернуть true.

Для моего вывода я получаю:

 false '<-- should be false'
false '<-- should be true'
  

и не могу понять, почему true не возвращает true .

Я также пытался

 if (numbers === 1 amp;amp; numbers  === 2 amp;amp; numbers  === 3) {
    doesArrayContainZero = false;
} else if (numbers === 1 amp;amp; numbers  === 0 amp;amp; numbers  === 2) {
    doesArrayContainZero = true;
}
  

думал, что мне может понадобиться более конкретная информация для каждого числа, но это было не так.

Ниже приведен вопрос с моим текущим ответом. Я не могу понять, почему это неправильно.

 function doesArrayContainZero(numbers) {
     if (numbers = [1,2,3]) { return false;} 
     else if (numbers = [1,0,2]) { 
     return true;
     }
}

/* Do not modify code below this line */
console.log(doesArrayContainZero([1, 2, 3]), '<-- should be false');
console.log(doesArrayContainZero([1, 0, 2]), '<-- should be true');
  

Комментарии:

1. numbers === 1 amp;amp; numbers === 2 amp;amp; numbers === 3 не имеет никакого смысла

2. Предполагается, что вы проходите через массив и проверяете каждый отдельный элемент 0 .

3. с помощью этой строки numbers = [1,2,3] вы устанавливаете numbers значение array [1,2,3]

Ответ №1:

Вы можете использовать «включает» или для совместимости со старыми браузерами «indexOf».

 var without0 = [1, 2, 3];
var with0 = [1, 0, 2];

function doesArrayContainZero(numbers) {
   return numbers.indexOf(0) !== -1;
}

console.log(doesArrayContainZero(without0));
console.log(doesArrayContainZero(with0));  

Ответ №2:

Очень простое решение, которое включает в себя использование функции es6. https://developer.mozilla.org/pl/docs/Web/JavaScript/Referencje/Obiekty/Array/includes

 [1,0,3].includes(0) // true 
[1,1,3].includes(0) // false 

// in your case 
function doesArrayContainZero(numbers) {
   return numbers.includes(0) // returns boolean value
}