配列の要素数は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; } }; |
文字列だったら長さが返ってきます。