XMLから読み込んだデータなんかを配列に入れておいて、その値から格納されてるインデックスを調べたいことってあると思います。
function getIndex( _ary:Array, _value:Object):int{
for(var prop in _ary){
if( _ary[prop] == _value ) return prop;
}
return -1;
}
1つ目の引数に配列を、2つ目の引数に調べたいエレメントを指定して、見つかればインデックスを見つからなければ-1を返す。
同じ値が複数格納されてる場合だともちっと処理を加えないとですね。型を調べてないから文字列を指定しても数値がヒットしたりしますね。うん。
三項演算子とはWikipediaによると
プログラミングにおける三項演算子とは、3つの被演算子(引数・オペランド)をとる演算子のことである。被演算子がひとつのものを単項演算子、ふたつのものを二項演算子と呼ぶ。
引数の型と結果の型は必ずしも同一ではない。 Cから派生した多くのプログラミング言語では、条件演算子 ? : をサポートする。三項演算子というと一般的にこの演算子のことを指す。
とある。
分かるような分からないような内容…だけど要は
a > b ? true : false;
みたいなやつ。
条件式 ? 真の場合の値 : 偽の場合の値な形。ある条件を使って変数に入れる値を変えたい時なんかによく使う。
var b:Boolean = true;
var s:String = "";
s = b ? "TRUE" : "FALSE";
if( b ){
s = "TRUE";
}else{
s = "FALSE";
}
4行目と6〜10行目でやってる事は同じ(厳密には違う、と言うか意味合いが違う?)。
ってここまでは皆さん普通に使ってるでしょうけど、
var i:int = 0;
var s:String = "";
s = (i == 0) ? "零" : (i > 0) ? "正" : "負";
if( i == 0 ){
s = "零";
}else{
if( i > 0 ){
s = "正";
}else{
s = "負";
}
}
6〜14行目の内容を4行目の一行で表せる。こんな使い方が出来たなんて!全然知らなかった!!
else ifでつながっていくのではなくて、elseの中に入れ子になる形なのね。
知ってても劇的に役に立つわけじゃないけど、少し得した気分。