Почему троичный оператор в for ... of Statement не работает? - PullRequest
0 голосов
/ 29 ноября 2018

Я не уверен, почему троичный оператор не работает в этом примере.Я видел, как он использовался подобным образом раньше, но я не могу заставить его работать должным образом в этом тесте.Любая помощь будет принята с благодарностью!

const numbers = [1, 2, 3, 4, 5];

console.log(includes(numbers, 4));
//This works fine
function includes(array, searchElement) {
    for (let element of array)
        if (element === searchElement)
            return true;
    return false;
}

Это решение прекрасно работает, но когда я пытаюсь использовать троичный оператор, я всегда получаю false.

console.log(includes2(numbers, 4));

function includes2(array, searchElement) {
    for (let element of array) {
        return (element === searchElement ? true : false);
    }
}

1 Ответ

0 голосов
/ 29 ноября 2018

Позволяет добавлять блоки и преобразовывать условный оператор обратно в if:

Первый пример:

function includes(array, searchElement) {
    for (let element of array) {
        if (element === searchElement) {
            return true;
        }
    }
    return false;
}

Второй пример:

function includes2(array, searchElement) {
    for (let element of array) {
        // return (element === searchElement ? true : false);
        if (element === searchElement) {
           return true;
        }
        return false;
    }
}

Обратите внимание на позициюreturn false; заявления.В первом случае вы возвращаетесь после цикла.Во втором случае вы возвращаетесь в цикл, т.е. функция всегда завершается в первой итерации цикла.

...