我在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 & ??? )
任何帮助朋友?
答案 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
}