人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【JavaScript switch文のcaseに変数を使う】

日付をランダムに選出して代入するプログラムを作ってます
/////////////////////////////////////
function test(){
days = Math.floor( Math.random()*30);
var newarray2 = new Array(31);
j=1;
for( i=0;i<=30;i++){//配列で01〜31日の配列を作る
newarray2[i] = j;
if( j <= 9){newarray2[i] = "0" + j; }//1桁の数字を0をつけ2桁にする
j++;
}
switch(days){
case 0: days = newarray[0]; break;
case 1: days = newarray[1]; break;
....
case 30: days = newarray[30]; break;
}
/////////////////////////////////////
switchでcaseを31個も使うのはださいので
forでまとめようと思ったのですが

switch(days){
for(i=0;i<=30;i++){
case i: days = newarray[i]; break;
}
}
alert(days);
}
試したのですが動きません...
また短くかけるソースならなんでもいいです

●質問者: 八咫烏
●カテゴリ:コンピュータ インターネット
✍キーワード:CASE Days JavaScript switch test
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●20ポイント

switchも何もいらないと思います。

daysの値が 0だったら

days = newarray[0]; break;

をするということは


days = newarray[days]; break;

と同じことだと思いますが。


ちなみに

case i:

の箇所は 定数じゃないとダメかと思いますが。

◎質問者からの返答

一応例として出しました

case では定数しか使えないんですね

エラーコンソールでは単に関数が存在しませんとしか

出なかったためcaseに異常は無いと思ってました


2 ● じゅぴたー
●40ポイント ベストアンサー

こんな感じでどうでしょう。

//文字列を右側からn文字だけ取り出す
function right(str, n) {
 l = str.length;
 if (n > l) n = l;
 return(str.substring(l - n, l));
}

function test() {
 days = Math.floor(Math.random() * 31) + 1;
 days = right("00" + days, 2);
 alert(days);
}
◎質問者からの返答

関数は動作して1桁の表示を2桁も動いて

欲しい動作そのままソース化していただいたのはありがたいのですが...

変数のスコープ上 days をグローバルとして呼び出したいのですが...

補足が足りてませんでしたが...

年、月、日でデータをランダムに格納しています

無論4月は30日までしか無いのでそのような場合に

変数をローカル変数でなく、グローバル変数として扱いたいのですが

ローカルで個別に決めた値をグローバルにはもってこれなくなっています

その場合はどういった処置を取ればよろしいでしょうか


3 ● lang_and_engine
●40ポイント

コメント欄でじゅぴたー氏が述べた仕様で,関数を作りました。

学習用の参考リンクを含め,下記エントリにまとめておきました。


JavaScriptで,ランダムな日付情報を取得・表示する関数(うるう年などを加味し,期間の範囲も指定可能)

http://d.hatena.ne.jp/language_and_engineering/20110829/p1

◎質問者からの返答

ソース化していただきありがとうございます

無事に20YYMMDDの形でダイアログ表示確認しました

自分はこのランダム日付のソースを使って、はてなの

ランダムな日付の記事を見ようというものを考えていましたので

現在より過去そしてはてな建設時からという条件を使ってやろうと

考えていました

そのあたりはここまで作っていただいたので自分で考えます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ