配列の要素数はlengthで取得できますが、
連想配列の場合はlengthは使えません。
スマートではないですがfor inでループを回してカウントするのが簡単です。
連想配列でも配列でも同じように要素数が取得できる関数です。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var len = function(val) {   if(val == undefined || val == null) {     return 0;   }   if(val instanceof Array) {     return val.length;   }   else if(val instanceof Object) {     var _cnt = 0;     for(var x in val) {       _cnt++;     }     return _cnt;   }   else {     return val.length;   } }; | 
文字列だったら長さが返ってきます。
