正确实现字符串'in'数组的更好方法

时间:2011-08-07 19:54:49

标签: arrays actionscript-3 inclusion

假设您在ActionScript3中有一个包含许多字符串的数组,并且您想测试测试字符串是否在该数组中。 “in”仅对AS3中的Arrays索引起作用(如果你问我,这完全是延迟的),虽然它确实适用于ojects,但我们不是在谈论对象。

有人可以改进(减少)我现在使用的这段代码吗?我希望避免定义一个实用功能 - 我想要一个漂亮优雅的单行。

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

由于0 == false,我们可以在测试中使用它。请注意,testString的作用域在contains函数中定义,由闭包封装。

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

2 个答案:

答案 0 :(得分:2)

使用Array.indexOf()方法查看数组中字符串的索引不是-1(未找到):

var myArray:Array = ["hello", "world"];
trace(myArray.indexOf("hello")); // == 0;
trace(myArray.indexOf("goodbye")); // == -1

答案 1 :(得分:1)

为什么不使用indexOf()

if(myArray.indexOf("testString") != -1) { // it's in there