檢測物件是否為Array的好方法

 Fri, 10 Oct 2008 21:21:48 +0800

剛剛在Douglas Crockford的blog上看到的方法,應該很實用:The Miller Device。不過這個方法是google的Mark Miller提出來的。

方法如下:

Object.prototype.toString.apply(value) === '[object Array]'

要檢查的變數就是"value",非常簡單。

另外稍微試一下typeof的結果是怎樣,做一個比較驗證:

alert(typeof []);
alert(typeof {});
alert(Object.prototype.toString.apply([]) === '[object Array]');
alert(Object.prototype.toString.apply({}) === '[object Array]');

這樣會依序跳出"object"、"object"、"true"、"false"的結果,看來可行。