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

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

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

И не могу понять, почему истина не вернет истину.

Я тоже пробовал

if (numbers === 1 && numbers  === 2 && numbers  === 3) {
    doesArrayContainZero = false;
} else if (numbers === 1 && numbers  === 0 && 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');
-2
Katie Rose 13 Апр 2019 в 21:43

2 ответа

Лучший ответ

Вы можете использовать «include» или, для совместимости со старыми браузерами, «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));
0
mbojko 13 Апр 2019 в 18:49

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

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


0
Kamil Naja 13 Апр 2019 в 18:58