許せない心理テスト

添付ファイルのようなlistオブジェクトがあります。

コード上の$.each(list, function(~
となっているところで、

listとすると、全体が、
list[1]とすると、key1部分が取得できるのですが、

この時、このlistオブジェクト親要素数(3)を取得するには、
どうすればよいのでしょうか?


list.sizeとか、list.lengthとかやっても、うまくいきませんでした。

「jQueryで、listの要素数を取得し」の質問画像

A 回答 (2件)

>ちなみに、ここでやってること



(1)listがObjectでない時は-1(nullとかが渡された場合に判定できるように)。
(2).lengthの型が数値の時は、配列とみなして、.lengthを返す。
(3)ここまで来た時は、たぶん連想配列(キーと値のペア)だろうから、キーを数えて返す。


>単純に、list.lengthだけでダメなのは、対象オブジェクトが、多次元みたいな構成になってたからでしょうか?

多次元というか、単にlistがObject型だからでは。なので、

> 内容的には、jQueryというよりは、javascriptの話になるのでしょうか?

と思います。

くわしくは、ここらへんをご覧ください:
http://www.ecmascript.org/docs.php
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
大変参考になりました!

お礼日時:2011/01/18 18:13

適当な組み込み機能がなさそうなので、自力で数えてみては。


一例:
function count_properties( list ){
if ( typeof list != 'object' ){ return -1; }
if ( typeof list.length == 'number' ){ return list.length; }
var n = 0; for ( var k in list ){ n++; } return n;
}

この回答への補足

回答ありがとうございました。
おかげで望む結果を得ることができました。

ちなみに、ここでやってることと言うのは、下記のような意味で合ってますでしょうか?
・listの型がオブジェクトの場合はスキップ。
・listの型が数字だったら、数を数える。
・それを、listの要素数だけ、繰り返す。

単純に、list.lengthだけでダメなのは、対象オブジェクトが、多次元みたいな構成になってたからでしょうか?

内容的には、jQueryというよりは、javascriptの話になるのでしょうか?
何か参考になるようなサイト等、もしご存知でしたら、教えていただければ幸いです。

補足日時:2011/01/17 01:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報