javascript “условности”
сегодня столкнулся с задачей такого плана:
у тебя есть набор из трех цифр. каждая цифра может быть 0 или 1. каков оптимальный алгоритм вычисления условия, что из трех цифр только одна является 1, а остальные - 0?
хочу заметить что реализация нужна была на JS и подразумевала проверку трех полей, на заполненность, а конкретно необходимо что бы заполнено было только одно поле из трех (всех).
почему-то в голову не пришел сразу же битовый вариант реализации, который озвучил BeGeMoT:
2, 4, 8
if ( $num % 2 == 0 and $num <= 8 ) {
true
}
вариант хорош, и на JS портируется нормально, но я выбрал другой, реализация которого меня и порадовала и удивила своим наличием в JS:
if ( ($('pq_89').value.length > 0) +
($('pq_90').value.length > 0) +
($('pq_56').value.length > 0) == 1) {
true;
}
да, как и ожидалось, JS сделал конвертацию типов и превратил все true в 1, а затем суммировал их…
немного извратно, зато красиво и интерессно ![]()
Tags: Javascript, логика, работа
Также рекомендую к прочтению: