我有一个switch()
,需要包含多个条件才能使其成立。
在线社区告诉我,应该将它们分为两种情况,然后进行定义。像这样:
function changeGrep(searchFor){
app.findGrepPreferences.findWhat = searchFor;
var myFound = myDoc.findGrep();
for(i=0; i<myFound.length; i++){
switch(searchFor){
case "^201\\d$":
case myFound[i].parent.fillColor == app.activeDocument.swatches.item(14):
myFound[i].parent.fillColor = app.activeDocument.swatches.item(3);
break;
case "^-?\\+?\\(?((\\d+,)?(\\d+,)?(\\d+)(\\.\\d+)?%?\\)?)$":
case myFound[i].parent.fillColor == app.activeDocument.swatches.item(14):
myFound[i].parent.fillColor = app.activeDocument.swatches.item(4);
break;
}
}
}
changeGrep("^-?\\+?\\(?((\\d+,)?(\\d+,)?(\\d+)(\\.\\d+)?%?\\)?)$");
changeGrep("^201\\d$");
首先,为了完整起见,将整个表放置为红色
(14)
。如果满足两个条件,则应更改颜色。但是,它并不关心第二个case
。有关如何在extendscript中执行此操作的任何想法?
最佳答案
您可以尝试将其作为普通的JS解决方案。将true
传递给switch
语句,然后每种情况都可以包含一个条件。
switch (true) {
case (<condition> && <condition>):
// do something
break;
case (searchFor === '^201\\d$'):
// do other thing
break;
case ((searchFor === '^201\\d$') && (myFound[i].parent.fillColor == app.activeDocument.swatches.item(14)):
// code
break;
}
关于javascript - ExtendScript开关中的多个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49633075/