カテゴリー別アーカイブ: Array

Arrayの落とし穴(2) – ゼロの配列

普段あまり使わないのだけれど、Arrayは・・・

var array:Array = new Array(0,2)

とやっても生成できます。で、たまたま横着してこの方式で・・・

array = new Array(0)

とやって、array[0] == 0 になると思ったら、要素ゼロの配列になってしまい、しばらく「何でだろうな??」とはまってしまいました。ヘルプ通りの仕様なんですけどね。

var array:Array = new Array(0,2)
trace(array,array.length) >> 0,2 2
array = new Array(0)
trace(array,array.length) >>  0

まあこんなコトで躓くこともないと思いますが、自分ではまたやりかねないのでメモ。

素直にこうすれば、何の問題も起きないんですけどねw。
array = [0]
trace(array,array.length) >> 0 1

[追記]2011.5.11
野中さんから情報いただきました。初期化は[]を使う方が速いらしいです。

Arrayの落とし穴(1) – Array.sort()

表示リストのindexをArrayで管理していて、はまった罠。
var list:Array = [7,8,9,10]
list.sort()
trace(list)
—10,7,8,9
var list:Array = [7,8,9,10]
list.sort(Array.NUMERIC)
trace(list)
—7,8,9,10
Array.sort()ってデフォルトだと文字扱いでソートになるのね。いつもインスタンス名とかでsortするときは、必ず「mc00」「mc01」とか文字列(主にインスタンス名など)に使ってて、あまり数値そのもののソートをしたことないってことか…。お恥ずかしい話でした(^^;。
※一応、カテゴリをAS3.0にしているけど、AS2.0でも同じです。
[追記]2011.5.10
Arrayについて整理するため、カテゴリを追加してタイトルも変更しました。