0

Activation3に多数の文字列を含む配列があり、テスト文字列がその配列の「中に」あるかどうかをテストするとします。「in」は、オブジェクトでは機能しますが、AS3の配列(私に言わせれば完全に遅延)のインデックスに対してのみ機能しますが、オブジェクトについては説明していません。

私が現在使用しているこのコードを誰かが改善(削減)できますか?効用関数を定義することを避けたいと思っています-素敵でエレガントなワンライナーが欲しいです。

myArray.filter(function(item:*, i:int, a:Array) { return (item == testString); }).length

0 == falseなので、テストで使用できます。testStringのスコープは、クロージャーによってカプセル化された包含関数で定義されていることに注意してください。

if (allowedProfiles.filter(function(item:*, i:int, a:Array) { return (item == name); }).length){ // yay! }
4

2 に答える 2

2

このメソッドを使用してArray.indexOf()、配列内の文字列のインデックスが見つからない-1(見つからない)ことを確認します。

var myArray:Array = ["hello", "world"];
trace(myArray.indexOf("hello")); // == 0;
trace(myArray.indexOf("goodbye")); // == -1
于 2011-08-07T19:59:09.267 に答える
1

indexOf()を使用しないのはなぜですか?

if(myArray.indexOf("testString") != -1) { // it's in there 
于 2011-08-07T20:01:45.877 に答える