2015-07-10 100 views
0

在JavaScript中有什麼方法可以將參數傳遞給函數,以便反轉循環的方向?帶反向循環參數的函數

var srcDoc = app.activeDocument; 
var str = ""; 

// iterateLayers(srcDoc, true); // 3 2 1 0 
iterateLayers(srcDoc, false); // 0 1 2 3 

function iterateLayers(srcDoc, rev) 
{ 
    var numOfLayers = sauce.layers.length; 
    if (rev) 
    { 
    for (var i = numOfLayers -1; i >= 0; i--) 
    { 
     str+= i + " "; 
    } 
    } 
    else 
    { 
    for (var i = 0; i < numOfLayers; i++) 
    { 
     str+= i + " "; 
    } 
    } 
} 

alert(str); 

回答

1

哈!我用三元運算符來解決這個問題。走吧!

// call the source document 
var srcDoc = app.activeDocument; 

var str = ""; 

// iterateLayers(srcDoc, true); // 3 2 1 0 
iterateLayers(srcDoc, false); // 0 1 2 3 

function iterateLayers(sauce, rev) 
{ 
    var numOfLayers = sauce.layers.length; 
    for (var i = numOfLayers -1; i >= 0; i--) 
    { 
    var index = (rev == true) ? i : (sauce.layers.length-i)-1; 
    str+= index + " "; 
    } 
} 

alert(str); 
+0

你可以簡化一下。將'(rev == true)'改爲'rev'。 –

+1

'(rev == true)'在這種情況下與'(rev)'相同。大多數編碼器使用後者,我發現用前者更容易「閱讀」。但謝謝你的提示 –