質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

991閲覧

javascriptで、関数宣言→関数式への返還を求められました。どのようにしたらいいですか。

sembokulove

総合スコア76

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2022/04/11 03:17

以下は、jsの構文の一部です。繰り返しの質問になりますが、重要なことが抜けていたのです。
構文の中で、function changeDiaType(DiaDay)と書くと、構文チェックサイトで、関数宣言→関数式への返還を求められました。
実際に試してみましたが、必ずvar changeDiaType = function()と書くようになり、せっかく、
//平日ダイヤと土・休日ダイヤの入れ替えと
//各列車が本日運転する列車なのかそうでないのかを判定する
//引数はその列車の運転日情報 例:平日 全日 土・休日で指定したDiaDayの値を破棄し、ご破算にせざるを得ません。
もう、泣き寝入りしかありません。
何かいい方法はないでしょうか。
//平日ダイヤと土・休日ダイヤの入れ替え
function judgeDiaDay()
{

setYear = nowYear; //年
setMonth = nowMonth; //月
setDate = nowDate; //日
setDay = nowDay; //曜日

//3時より前なら前日扱いにする
if(HHMMSSToSecond(nowHour, nowMinute, nowSecond) < dayChangeTime)
{
nowDateSet.setDate(nowDateSet.getDate()-1);

setYear = nowDateSet.getYear(); //年 setMonth = nowDateSet.getMonth() + 1; //月 setDate = nowDateSet.getDate(); //日 setDay = nowDateSet.getDay(); //曜日

}

if(setYear < 2000) setYear += 1900; //年の補正、1900プラスしとかないといけない場合があるため

//平日ダイヤか祝日ダイヤの判定
if(dayJudge(setYear, setMonth, setDate, setDay))
{
//表示させる欄が存在すれば、表示させる
if(document.getElementById("todayDiaDaySpan") != null)
{
document.getElementById("todayDiaDaySpan").innerHTML = " 平日ダイヤ ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#9ff";
}
DiaDay = 0;
}
else if((dayJudge(setYear, setMonth, setDate, setDay)) && (!(DiaDay == 0)))
{
//表示させる欄が存在すれば、表示させる
if(document.getElementById("todayDiaDaySpan") != null)
{
document.getElementById("todayDiaDaySpan").innerHTML = " 土・休日ダイヤ ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#9ff";
}
DiaDay = 1;
}
else
{
//表示させる欄が存在すれば、表示させる
if(document.getElementById("todayDiaDaySpan") != null)
{
document.getElementById("todayDiaDaySpan").innerHTML = "土曜ダイヤ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#fcf";
}
DiaDay = 2;
}
}

//各列車が本日運転する列車なのかそうでないのかを判定する
//引数はその列車の運転日情報 例:平日 全日 土・休日
function judgeTrainRunningDay(value)
{
if(value == "全日")
return true;

//平日ダイヤ
else if(value == "平日" && DiaDay == 0)
return true;
else if(value == "土曜・休日運休" && DiaDay == 0)
return true;
else if(value == "毎日運転" && DiaDay == 0)
return true;

//土・休日ダイヤ
else if(value == "休日" && DiaDay == 1)
return true;
else if(value == "土休日" && DiaDay == 1)
return true;
else if(value == "土・休日" && DiaDay == 1)
return true;
else if(value == "土曜・休日運転" && DiaDay == 1)
return true;
else if(value == "毎日運転" && DiaDay == 1)
return true;

//土曜ダイヤ
else if(value == "土曜" && DiaDay == 2)
return true;
else if(value == "毎日運転" && DiaDay == 2)
return true;

else
return false;
}

//平日ダイヤと土・休日ダイヤの入れ替え
function timeButtonInterfaceUpdate()
{
//引数がtrueなら、リアルタイムモードのインタフェースに
if(true)
{
realtimeUpdate = true;
document.getElementById("realTimeModeStatusDiv").innerHTML = " リアルタイム表示中 ";
//ドロップダウンリストの有効化
document.form1.updateIntervalSelect.disabled = false;
}
else
{
realtimeUpdate = false;
document.getElementById("realTimeModeStatusDiv").innerHTML = "リアルタイム表示にする";
//ドロップダウンリストの無効化
document.form1.updateIntervalSelect.disabled = true;

//もしタイマーが事前にかかっていたら、止める clearInterval(updateIntervalTimer); {

function changeDiaType=(DiaDay)
{
if(DiaDay = 2)
{
document.getElementById("todayDiaDaySpan").innerHTML = "土曜ダイヤ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#fcf";
DiaDay=2;
}
else if(DiaDay = 1)
{
document.getElementById("todayDiaDaySpan").innerHTML = "土・休日ダイヤ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#fcf";
DiaDay=1;
}
else
{
document.getElementById("todayDiaDaySpan").innerHTML = " 平日ダイヤ ";
document.getElementById("todayDiaDaySpan").style.backgroundColor = "#9ff";
DiaDay=0;
}
}}}

//時刻表データ再読み込み
getTimeTable();

//再表示
setNewTime(setSecondSum);

//路線図に列車を配置していく
drawTrain();

//時刻表スペースをリセット
var idName = "staTimetableTime0Div";
document.getElementById(idName).innerHTML = "駅名をクリックすると、時刻表が表示されます。";
var idName = "staTimetableTime1Div";
document.getElementById(idName).innerHTML = "";
var idName = "staTimetableTimeTitle0Div";
document.getElementById(idName).innerHTML = "";
var idName = "staTimetableTimeTitle1Div";
document.getElementById(idName).innerHTML = "";

//インタフェース再セット
//timeButtonInterfaceUpdate(true);
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/04/11 03:19

質問文が「日本語として」意味が取れません。もう少し推敲していただけないでしょうか?
yambejp

2022/04/11 03:29

求められる・・・ということは依頼主がいるんですよね? なぜ仕様を事前に確認しなかったのでしょうか? とはいえどうしてもというのであればこの程度の書き換えは大した手間ではありません なにがどう泣き寝入りなのでしょうか?
Zuishin

2022/04/11 03:52 編集

同じことを何度聞いてもわからないなら、回答が理解できるだけの基礎を勉強しないと、泣き寝入りするしかないんじゃないでしょうかね。 努力を怠ったのが理由で利益を得られないのは、被害者じゃなく、場合によっては加害者なので、一般に言われる泣き寝入りのニュアンスからは外れると思います。 普通の日本語では「自業自得」が最も適切です。
int32_t

2022/04/11 04:11

どんなコードに変更して、なぜ「DiaDayの値を破棄し、ご破算にせざるを得ません。」と思ったのでしょうか。ふつう、関数式に書き直しただけでは何のトラブルも起きないものです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問