タイプ判別 で 'array' を返してほしい。
JavaScript の typeof単項演算子 に Array の評価を依頼すると 'object' と返してくる。
・・・いや、その答えは正しいのですが、やっぱり 'array' と返してくれた方が私はウレシイ。
JavaScriptのHashはObjectと同義であるらしいので、単なる Object と Array Object の違いさえ判別できれば答えが出そう。
んで、やっぱり Object と Array Object の違いって、 length プロパティを持ってるかどうかカナ?
あとは、 typeof と合わせ技で gettype という関数作って終わり。
--
まぁ、このご時勢だから、既にどっかにいいものがあるんだろうな。
・・・いや、その答えは正しいのですが、やっぱり 'array' と返してくれた方が私はウレシイ。
JavaScriptのHashはObjectと同義であるらしいので、単なる Object と Array Object の違いさえ判別できれば答えが出そう。
んで、やっぱり Object と Array Object の違いって、 length プロパティを持ってるかどうかカナ?
function arr_obj(_val){
if( _val.__proto__.length == undefined ) return 'object';
return 'array';
}
var hoge = [];
var fuga = {};
arr_obj(hoge); //'array'
arr_obj(fuga); //'object'
一応、こんなもんで。あとは、 typeof と合わせ技で gettype という関数作って終わり。
//タイプ判別
function gettype(_val){
if( _val === null ) return 'null';
if( typeof _val != 'object' ) return typeof _val;
if( _val.__proto__.length == undefined ) return 'object';
return 'array';
}
んー、typeof 自体を書き換えたり(どーやって?)、Object の prototype に突っ込んで hoge.gettype() とかにしたら使い勝手が良くなりそうカナ?。--
まぁ、このご時勢だから、既にどっかにいいものがあるんだろうな。
About this entry
Title
Archive type
Individual archive
Published
2007/02/04 13:18
0 Comments