Array
2
Arrayオブジェクトをfor in文で実行した際の注意点
2
Arrayオブジェクトをfor in文でループする際には下記注意点を考慮してください。
1.for in文で要素を取り出す場合の順序について
Arrayオブジェクトをfor in文で要素を取り出す場合、要素の順序は保証されません。
これはArrayオブジェクトの添え字に文字を使用した場合だけではなく、数字を
使用した場合も同様です。
添え字を数字にした場合、数字の順序通りに要素を取り出したい場合は、for文を
使用するようにしてください。
2.自動追加された要素のループについて
Arrayオブジェクトは、数値または数字のみの文字列を指定した場合、自動的に0から
指定した数値までの要素が追加されます。
参考:
添え字に関する留意点
ただし、上記の自動追加された要素はfor in文ではループの対象とはなりません。
自動追加された要素もループさせたい場合は、for文を使用するようにしてください。
[ サンプルコード ]
Form Form1 { Width = 316; Height = 409; Button Button1 { X = 167; Y = 25; Width = 124; Height = 43; Title = "配列の確認"; Function OnTouch( e ) { var tmpArr = new Array(); /* 数値または数字のみの文字列を指定した場合、自動的に0から指定した数値までの要素が追加される */ tmpArr["10"] = "a"; ^.EditBox1.Value = "\"10\"を入れた場合のLength→" + str(tmpArr.length) + "\n"; ^.EditBox1.Value += "------------------------------------\n"; /* 数値または数字のみの文字列を指定した場合、自動的に0から指定した数値までの要素が追加される */ tmpArr[20] = "a"; ^.EditBox1.Value += "20を入れた場合のLength→" + str(tmpArr.length) + "\n"; ^.EditBox1.Value += "------------------------------------\n"; /* for in文の場合は、初期化した要素のみループされる */ var i; for(i in tmpArr){ ^.EditBox1.Value += "i =" + str(i) + "\n"; } ^.EditBox1.Value += "------------------------------------\n"; /* for文の場合は、全ての要素がループされる */ var j; for(j = 0; j < tmpArr.length; j++){ ^.EditBox1.Value += "j =" + str(j) + "\n"; } } } EditBox EditBox1 { X = 13; Y = 96; Width = 282; Height = 284; } }
管理番号:AryHt_002
Biz-Collections Bizの宝箱 トップへ
Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ