好的,我知道这是一团糟。这就是我在这里发布的原因。我希望你能理解我想要创造的逻辑。是否有更好的方法来实现这一目标?
else if (((!(lc(this).getByIndex(i).dim2.Shirts)) && ('Nike' in lc(this).getByIndex(i).dim3))
|| (('Nike' in lc(this).getByIndex(i).dim3) && ('Shirts' in lc(this).getByIndex(i).dim2)))
这里基本上有两个陈述:如果衬衫和耐克出现在耐克但根本没有类别,我希望这个陈述能够证明是真的。希望有所帮助,但我会将其转移到代码审查,但会等待一个可靠的答案,所以有人得到了信息:) ...感谢您的提示。
答案 0 :(得分:2)
else {
//comparisons
var a=yadayadayada,
b=blablabla,
c=1024,
d=document.getElementById('something').value;
//and so on
if( a===b || c<=d ){ //that should keep your if-clause a lot more readable!!
//actions
}
}
希望这有帮助!
更新(在TS更新后): 现在我们对你的数据有了更多的了解,你会问:'如果衬衫和耐克在场,或者Nike但没有任何类别,那就是真的,那么这就是你想要的:
else {
var b='Nike', //brand
c='Shirts', //category
d=lc(this).getByIndex(i),
d2=d.dim2,
d3=d.dim3;
if( ((b in d2) && d2[c]) || (b in d2) ){
//actions
}
}
答案 1 :(得分:2)
根据GitaarLAB的回答,这个怎么样?
...
else {
var x = lc(this).getByIndex(i),
y = x.dim2.Shirts,
nike = 'Nike' in x.dim3,
shirts = 'Shirts' in x.dim2;
if (!y && nike || nike && shirts) { ... }
}
答案 2 :(得分:1)
既然你有“耐克......等等”。在两个语句中,您可以将其缩小为:
else if ( ('Nike' in lc(this).getByIndex(i).dim3)
&& (!lc(this).getByIndex(i).dim2.Shirts || ('Shirts' in lc(this).getByIndex(i).dim2)) )