【发布时间】:2016-04-06 14:16:27
【问题描述】:
我有三个变量,a、b 和 c。这些变量中的每一个都有一个属性foo,如果是Boolean。
在a、b 和c 中,恰好有两个将foo 属性设置为true。
找出哪个设置为false的最有效方法是什么?
为了说明这一点,我有一个函数,我想根据将 foo 设置为 false 的变量来做一些事情,我不确定确定 @ 的最佳方法是什么987654334@变量是。
例如我可以像这样手动检查使用 if 语句:
function doThings():void
{
if (a.foo == true)
{
if (b.foo == true)
{
True = a;
True2 = b;
False = c;
}
else
{
True = a;
True2 = c;
False = b;
}
}
else
{
True = b;
True2 = c;
False = a;
}
//More things...
}
或者我想到的另一种方法是将我知道的两个变量 foo 设置为 true 作为函数的参数,然后这样做:
function doThings(para, para2):void
{
if (a != para && a != para2)
{
False = a;
}
else if (b != para && b != para2)
{
False = b;
}
else
{
False = c;
}
//More things...
}
旁注:将foo 设置为true 的两个push 在运行时放入一个数组中,因此我无法以编程方式确切地知道哪个是哪个,但我可以将它们作为参数传递给函数( s)。
知道了这一点,我还可以使用 indexOf 轻松检查哪个不在数组中,但该方法的基本原理仍然保持不变。
这可以这样做,不使用参数:
function doThings():void
{
if (TrueArray.indexOf(a) == -1)
{
False = a;
True = b;
True2 = c;
}
else if (TrueArray.indexOf(b) == -1)
{
False = b;
True = c;
True2 = a;
}
else
{
False = c;
True = a;
True2 = b;
}
//More things...
}
就目前而言,第二种方法看起来更有吸引力,而且似乎是最简单的,但我只是想知道是否有更复杂的方法来做到这一点。
感谢阅读。
【问题讨论】:
标签: arrays actionscript-3 search