• ベストアンサー

関数の引数として配列を渡す方法

初めて質問させていただきます。 現在下記のように関数に配列の引数を渡して、配列の個数を表示しているのですが、必ず0件になってしまいます。 <html> <head> <title>連続して関数を呼び出す</title> <script language="JavaScript"> <!-- function aaa (est) { alert(est.length); return; } // --> </script> </head> <body> <script language="JavaScript"> <!-- var hai = new Array(); hai["a"] = true; hai["b"] = false; aaa(hai); // --> </script> </body> </html> もしかしたら、受け渡し方が悪いのかもしれないのですが、色々調べても分からなかったので質問させていただきました。 argumentsというものを使うのかもしれませんがうまくいきませんでした。 分かる方がいらっしゃいましたら、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • aigaion
  • ベストアンサー率47% (287/608)
回答No.1

JavaScriptのlengthは関数じゃなくてプロパティです. 実際に配列のサイズを数えているわけではなく,一番大きい添字の値+1を返しているだけですので, ハッシュの分は考慮されません. 数えたければ自力で関数書いたらいいんじゃないかな? 例えば下のように function len(array) { var i = 0; for( key in array ){ i++; } return i; }

tomokidayo
質問者

お礼

いまいち自分の理解が足りなかったようです。 aigaionさんの教えていただいた方法で動作しました! 後はこれを応用して使用させていただきます ありがとうございました。

その他の回答 (2)

回答No.3

ANo.2です。 スミマセン、現在推奨のタグ間違ってました。 ダメなほうを記入していまいました。余分なことばかりスミマセン。 <script type="text/JavaScript"> http://hpzeroguide.web.fc2.com/htmlfile/script.html

回答No.2

基本的には配列の書き方が間違っているだけだと思います。 論理値までご存知ですから、プログラムの知識があるようですが、 基本的な書式が違います。 hai[0]=true;のように記入します。[]内数字は0からの連番配列数N-1 ----------------------------------------------------- <html> <head> <title>連続して関数を呼び出す</title> <script language="JavaScript"> <!-- function aaa (est) { alert(est.length); return; } // --> </script> </head> <body> <script language="JavaScript"> <!-- var hai = new Array(); hai[0] = true; hai[1] = false; aaa(hai); // --> </script> </body> </html> ---------------------------------- これで動作しますが、 HTMLにはインターネット上のマナーのようなものがあります。 実際にWEBコンテンツとして使う場合は気をつけましょう。 <script language="JavaScript"> でなく今では、 <script language="JavaScript" src="./test.js"> が推奨されています。 が存知かもしれませんが、HTMLのバージョンも記入します。 http://www.openspc2.org/reibun/HomePage/basic/001/

tomokidayo
質問者

お礼

shinya23soさん ご丁寧な回答ありがとうございます。 スクリプトタグやhtmlタグは本番環境ではきちんと書かせていただきます。 おしえていただいて気づいたのですが、 自分が使用しようと思っていたのは連想配列でした。 なのでArrayじゃなくてObjectを使わなくては駄目だったんですね! javascriptに関しては初心者なので、色々な誤解がありましたが、 教えていただいたことで勉強になりました。 ありがとうございました。

関連するQ&A