Javascript布尔数组操作

时间:2012-03-03 12:18:24

标签: javascript

我在javascript中有关于booleanlogi的instrestion问题。

我有一个FOR圈并创建了一个触发事件,它将为IF语句存储TRUE或FALSE:

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);
        }
    }

所以最后我想检查布尔运算符AND

的每个数组语句
if(trigger & ??? )

任何帮助朋友?

2 个答案:

答案 0 :(得分:4)

根据您的一条评论

  

好的,我如何检查数组中的每个语句是否为TRUE,而不是返回   真

像这样,例如:

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

答案 1 :(得分:1)

(我用//@@@标记了新的代码行 我假设您要检查每个语句是否为真。然后,有两种方式,取决于“bla bla bla”是否实际存在。

如果forloop仅用于检查每个字段是否为空(即“bla bla”为空),并且之后没有使用触发器数组,则if语句可以紧凑地写为:

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
}