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