мне не хватает логики и знаний чтобы самому додуматься как пройти задание не используя if
export const oneWillDo = (x, y, z) => { return myFunction(x, y, z) } const myFunction = (x, y, z) => { if (x === true || y === true || z === true) { return true } else { return false } }
решил вот так, хотя логики особо не понял
export const oneWillDo = (x, y, z) => { return x && true || y && true || z && true }
@mentxl код можно упростить убрав && true. Вспомни как работает оператор ||
&& true
||
Привет! По-идее, этот вариант должен быть правильным
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;