2014-03-26 12 views
2

我有這個循環就在這裏:忽略在循環中的項目與一個特定的屬性

function sendBackOne() { 
    var selected = paper.project.selectedItems; 
    for (var i = 0; i < selected.length; i++) { 
     console.log(selected[i].name); 
    } 

其中選擇是與我遍歷項的數組。

其中一個項目的''name''屬性設置爲''something''。 我不想在我的循環中查看那個元素,我需要忽略它。

我該怎麼做呢?

我能想到的最好的方法是在循環中寫一個IF/ELSE語句來檢查名稱,如果它不是''什麼''我做我需要做的。

這是最好的方法嗎?

+2

除了在執行'for'循環之前過濾數組,我相信這將是* only *方式。 'if(selected [i] .name ==='something'){continue; }' – UweB

+1

如果它只是一個具有特定值的項目,那麼即使在運行for循環之前,也可以輕鬆地從該數組中移除該項目。 – lshettyl

+1

任何其他解決方案都需要先過濾收集,這意味着要循環收集只是爲了移除項目,然後再次循環以實際執行任何您想要的操作。就性能而言,循環一次並在循環中有一個條件會更好。 –

回答

1

是的。您也可以使用這樣的語句

var selected = paper.project.selectedItems; 
for (var i = 0; i < selected.length; i++) { 
    if (selected[i].name === "something") continue; 
    ... // Whatever you wanted to do, goes here 
} 
+0

我想你的意思是如果(選擇[我] .name!=「某事」)繼續;因爲我需要忽略所有具有「某事」的元素作爲名稱。 –

+1

@NicholasKyriakides不能:)如果'name'是某事',循環的主體將被跳過'繼續':) – thefourtheye

+0

唉隊長我現在看到了,謝謝 –

3

簡單:

if (selected[i].name == "something") 
    continue; 

使用continue頭到下一個迭代。