2012-03-03 8 views
0

У меня есть вопрос о булевом логике в javascript.Операции boolean массива Javascript

У меня есть для круга и создал инициирующее событие, которое будет хранить значение TRUE или FALSE для IF утверждения:

var trigger = []; 

for (i = 0; i < 3; i++){ 

    //Checking for empty fields 
    if(this.form.rows[i].fields[0].input.val() === '') { 
     if($(this.form.rows[i].row[0]).length){ 

     bla bla bla 

     trigger.push(true) 
     } 

     else { 

     trigger.push(false); 
     } 
    } 

Таким образом, в конце концов, я хочу, чтобы проверить каждое утверждение массива для булева оператора И

if(trigger & ???) 

Подружиться?

+2

Я не уверен, если я понимаю: вы хотите, чтобы * Количество * как часто 'true' в массиве или проверить, являются ли все * записи «истинными»? Что еще вы делаете с триггером? Вам нужен массив? '&' is * побитовое * AND btw. –

+0

Человек, я хочу проверить логическую логику, если утверждение будет правильным ('111' & '111') вернет TRUE –

+0

Все еще неясно, и '' 111 '&' 111'' фактически возвращает '111'. Я честно предлагаю вам занять некоторое время, чтобы правильно рассказать о своем вопросе. Нелегко понять, что вы хотите делать (или, может быть, это только я, кто этого не понимает). –

ответ

4

Основываясь на одном из ваших комментариев

Ok, как я могу проверить каждое утверждение в массиве, если это TRUE, чем вернуть истинный

, как это, например:

var alltrue = !/false/i.test(trigger.join('')); 
+0

Спасибо, человек -i've использовал ваше решение, но я думаю, что это будет ошибкой в ​​разных браузерах. –

1

(Я обозначил новые строки кода //@@@) Я предполагаю, что вы хотите проверить, истинно ли каждое утверждение. Тогда есть два способа, в зависимости от того, действительно ли «bla bla bla».

Если forloop только для проверки, если каждое поле пусто (то есть «бла-бла» пусто), а массив триггер не используется после этого, ваш, если заявление может быть компактно записано как:

var trigger = []; 
var empty=false; //@@@ 
for (i = 0; i < 3; i++){ 

    //Checking for empty fields 
    if(this.form.rows[i].fields[0].input.val() === '') { 
     if($(this.form.rows[i].row[0]).length){ 
     } 

     else { 
     empty=true; //@@@ 
     break; //@@@ 
     } 
    } 
} 

Если вы хотите, чтобы иметь возможность использовать триггер после этого, сделайте следующее:

var trigger = []; 
var dummy=[]; //@@@@ 
for (i = 0; i < 3; i++){ 

    //Checking for empty fields 
    if(this.form.rows[i].fields[0].input.val() === '') { 
     if($(this.form.rows[i].row[0]).length){ 

     bla bla bla 

     trigger.push(true) 
     } 

     else { 

     trigger.push(false); 
     } 

     dummy.push(true); //@@@@ 
    } 

//Use this if block: 
if(dummy.toString()=trigger.toString()){ 
    //Insert stuff here 
} 
//Alternatively, use this: 

if(dummy && trigger){ 
    //Insert stuff here 
} 
+0

Thank-good solution too –

Смежные вопросы