我如何使用"in"运算符?的Flex/AS3

inv*_*ear 2 apache-flex actionscript flex3 actionscript-3

所以文档有这个漂亮的"in"运算符,我更喜欢使用多步或语句(||)的想法.文档给了我这个例子.

trace("PI" in Math);         // true
trace("myProperty" in Math); // false
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

所以我试着像这样使用它:

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

现在我可以跟踪或Alert.show()元素.datafield它将与数组项完全匹配,但它永远不会返回true.任何人都可以帮我找出原因吗?

我唯一可以解决这个丑陋的事情:

return (
  element.dataField == "@icd9_color" ||
  element.dataField == "@icd9_icd9"
  etc..
)
Run Code Online (Sandbox Code Playgroud)

Ano*_*on. 8

in运营商检查的对象是否具有指定的属性- 不是该属性的值是什么.

您想使用Array.indexOf并检查非负值.