我正在编写一个循环,它在对象的某些节点上运行一堆函数。如果对象未定义,则应忽略它们,除非标志m.testUndefined为true,否则相反。我的逻辑在下面有效,但我想知道是否有更少的罗嗦和更多的表现方式来实现同样的事情。
for (var i = tests.length - 1; i >= 0; i--) {
var m = tests[i],
subject = m.subject(raw), //get the right raw data
isUndefined = typeof subject === 'undefined';
if(m.testUndefined && !isUndefined){ //Flag for skipping defined subjects
continue;
}else if(!m.testUndefined && isUndefined){ //Skip all other undefined subjects.
continue;
}
if( m.test(subject, m.params) ){
m.tag(item.tags); //add tags if test success
}
}