Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   условие : a,b; один из них или ничего. (https://javascript.ru/forum/misc/26581-uslovie-b%3B-odin-iz-nikh-ili-nichego.html)

melky 13.03.2012 22:50

условие : a,b; один из них или ничего.
 
В общем, такая проблемка :

var a, b; // Boolean

res = /*КОД*/;

res; // true

Вместо коммента у правой стороны res должен быть код.

Звучит он, по словам, как-то так :


Если обе переменные равны true, вернуть false;
Если одна из них равна false, вернуть false;
Если обе переменные равны false, вернуть true.


В коде это выглядит как-то так, я использовал преобразование булевого типа к числам :

var a = true,b = true; // Boolean

res = *!* a + b < 1 */!*

res; //true


Но меня терзают сомнения по поводу правильности этого решения. Собственно, из-за этого обращаюсь за помощью к вам : а как бы вы решили этот вопрос ?

Rootpassword 13.03.2012 22:56

если под
Цитата:

Если одна из них равна false, вернуть true;
подразумевается, что одна false, другая true , вернуть true;
(a===b)?(!a):true;

melky 13.03.2012 22:59

Rootpassword, прошу прощения, я запутался в словесном описании. поправил.

Цитата:

Если одна из них равна false, вернуть false;

Rootpassword 13.03.2012 23:00

(a===b)?(!a):false;
вроде так
Только условие должно быть Если одна из них равна false, другое не false(т.е. true) вернуть false
иначе пересечение.

melky 13.03.2012 23:02

Цитата:

Сообщение от Rootpassword (Сообщение 162943)
(a===b)?(!a):false;
вроде так

Да, сути, исправление почти не изменило.
запишу так.
a===b?!a:0

Спасибо Вам.

Gvozd 13.03.2012 23:08

!a&&!b

nerv_ 13.03.2012 23:26

// принимая во внимание, что вечером мой мозг особенно туго соображает )
var x = a === b && b === false;

Aetae 13.03.2012 23:26

Я бы так написал)
!(a||b)

А вообще нормально условие звучит так: если хотя бы одна из переменных true - вернуть false, иначе - true)

Rootpassword 13.03.2012 23:30

!(a||b) эквивалент (!a && !b) согласно мат логике

Aetae 14.03.2012 00:07

Естесно. Просто я написал бы именно так. И по мне - так красивее.)


Часовой пояс GMT +3, время: 06:52.