Привет! По-идее, этот вариант должен быть правильным
export const oneWillDo = (x, y, z) => { return (x == true || y == true || x == true) ? true : false; }
== как и === - в консоле всё хорошо, пробовал менять значения переменных.
Однако получаю ошибку. Обьясните, плиз
Grimshock попробуйте потренироваться выводя значения логических операторов. Можете прямо в браузере в консоли вводить true || true, true || false, false || false, тоже самое проделайте с оператором И. Да и вы здесь тоже используете оператор If, хоть и тернарную (принимающую три операнда) форму.
true || true, true || false, false || false
Grimshock тебе не нужен тернарный оператор. Если ты уберешь вопросительный знак и все что после него, код будет работать так же.
А ошибка тут
return (x == true || y == true || x == true)
Видишь х использован дважды и нет z?
х
z
export const oneWillDo = (x, y, z) => { return (x === true y === true z === true)
}
export const oneWillDo = (x, y, z) => { return x || y || z; }
Так правильно . Так как || если одно истинно, то все будет истинна.
Не понятно, почему этот код правильный?
export const oneWillDo = (x, y, z) => { return x || y || z
Он возвращает значение x ИЛИ y ИЛИ z, во втором условии в solution.js 2 false, так почему он вернет именно true? console.log(oneWillDo(true, false, false));
console.log(oneWillDo(true, false, false));
tretyak потому что в сам знак заложено что если хоть одно из сравниваемых значений - true, то результат логического всегда будет истина
tretyak посмотри в табличку из лекции, все ровно по ней
export const oneWillDo = (x, y, z) => { return (x === true y === true z === true)? true : false; }
Vladimirseversk export const oneWillDo = (x, y, z) => { return (x === true y === true z === true)? true : false; }
Сомневаюсь, что твой код рабочий.
правильнее все же так:
export const oneWillDo = (x, y, z) => { return (x === true & y === true & z === true) ? true : false; }
export const oneWillDo = (x, y, z) => { return (x | | y | | z) === true; };
return x | | y | | z;