Posts Tagged ‘логика’

javascript “условности”

Среда, Октябрь 10th, 2007

сегодня столкнулся с задачей такого плана:

у тебя есть набор из трех цифр. каждая цифра может быть 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, а затем суммировал их…

немного извратно, зато красиво и интерессно :)