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 |