for-in文におけるプロパティ参照順の差異(Firefox、IE)

ブラウザ間(FirefoxとIE)の動作差異に苦労したのでメモ的にエントリー!

●苦労した点●
for-in文を用いてArrayクラスを走査した場合、参照されるプロパティの順が異なる。


<<サンプルスクリプト>>

// Arrayクラスのプロパティを全て出力する関数
// ※要 "prototype.js"

function(){
	var array = new Array;
	var buf = ''; // Arrayクラスのプロパティを書き込む
                
	for( var i in array ) {
	    buf += i  + '<br/>';
	}
        // ↓のidには、プロパティ内容を出力したい "Element ID" を指定
	$( id ).innerHTML = buf;
}

以下の表はサンプルスクリプトをFirefoxとIEのそれぞれで実行した結果をまとめたもの。

# Firefox IE
1 each lastIndexOf
2 eachSlice indexOf
3 all toJSON
4 any clone
5 collect intersect
6 detect uniq
7 findAll reduce
8 grep without
9 include flatten
10 inGroupsOf compact
11 inject last
12 invoke first
13 max clear
14 min _each
15 partition _reverse
16 pluck some
17 reject every
18 sortBy entries
19 toArray member
20 zip filter
21 size select
22 inspect find
23 find map
24 select inspect
25 member size
26 entries zip
27 _reverse toArray
28 _each sortBy
29 clear reject
30 first pluck
31 last partition
32 compact min
33 flatten max
34 without invoke
35 reduce inject
36 uniq inGroupsOf
37 intersect include
38 clone grep
39 toJSON findAll
40 - detect
41 - collect
42 - any
43 - all
44 - eachSlice
45 - each