2009-12-11 75 views
2

所以文檔有這個漂亮的「in」運算符,我更喜歡使用多步或語句(||)的想法。文檔給了我這個例子。如何使用「in」運算符? Flex/AS3

trace("PI" in Math);   // true 
trace("myProperty" in Math); // false 

public var myArray:Array = ["zero", "one", "two"]; 
trace(0 in myArray); // true 
trace(1 in myArray); // true 
trace("two" in myArray); // true 
trace(3 in myArray); // false 

所以我嘗試使用這樣的:

var quickArray:Array = ["@icd9_color","@icd9_icd9","@templateIcd9_name","@templateIcd9_name","@templateIcd9_templateIcd9ID"]; 
return (element.dataField in quickArray); 

現在我可以跟蹤或Alert.show()的element.datafield,它會完全匹配與數組項目,但它永遠不會返回true。任何人都可以幫我弄清楚爲什麼?

我唯一可以開始工作這個醜陋的東西:

return (
    element.dataField == "@icd9_color" || 
    element.dataField == "@icd9_icd9" 
    etc.. 
) 
+2

'trace(「myArray」中的「two」);'實際上返回false – greggreg 2009-12-11 18:47:47

回答

8

in運營商檢查的對象是否具有指定的屬性 - 是什麼屬性的值。您想使用Array.indexOf並檢查一個非負值。

+0

謝謝我越來越加重了。 – invertedSpear 2009-12-11 18:53:23

+1

所以不應該跟蹤(myArray中的「two」);在invertedSpear的測試中輸出false而不是true? – 2010-02-02 15:28:26