- ベストアンサー
sqript反応がなく困ってます
- sqript反応がなく困ってます。JavaScriptで現在の年と月を取得し、アラートメッセージとして表示するコードを書いていますが、反応がありません。
- また、配列をソートする際にも問題が発生しています。例えば、[10000, 500, 20000]という配列をソートした場合、500が最初に来ないことになります。なぜでしょうか?
- これらの問題について解決策を教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Scriptに不備が沢山あるため動きません。 (Firebug等の開発ツールで一目瞭然です) エラー箇所はコメントに記入しましたので見比べてください。 >それとsortなんですが http://webdrawer.net/javascript/jssort.html 上記URLを参考にしてください。(デフォルトの並び替えはアルファベット順) また tei.sort; ではなく tei.sort(); です。 ==== 修正版JavaScript var d = new Date(); // getfullyear()ではなくgetFullYear(); var fullYear=d.getFullYear(); // monthを定義しないとaertの部分でエラー var month = d.getMonth(); alert(fullYear+"年"+month+"月") var tei = [ { name:"野球部",yosan:20000 }, { name:"サッカー部",yosan:10000 }, { name:"卓球部",yosan:12000 }, { name:"写真部部",yosan:24000 } ]; tei.sort( function(a,b){ // a,bに入ってくるのはteiオブジェクトなので比較する値はyosan var aYosan=a['yosan']; var bYosan=b['yosan']; if(aYosan<bYosan)return -1; // if(aYosan>bYosan)return 1;では上の条件と変わらないので並び変わらない if(aYosan>bYosan)return 1; return 0; }); for(var i=0;i<tei.length;i++) { // tei[i][yosan]ではyosanが変数となってしまうのでエラー「'」でくくる document.write ( i + ':' + tei[i]['name'] + ',' + tei[i]['yosan'] + '<br>' ); }