JavaScriptに関する質問です。良い回答は、200ポイント差し上げます。


下記の年月を計算する式がありますが、
この場合、YYYY=201101のとき201100になります。
それを回避する回答をお願いします。
sYYYY = objData.Search.YYYY.substr(0,4)-1;

どうか宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/01/23 01:40:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tabuta-4949 No.1

回答回数100ベストアンサー獲得回数3

ポイント35pt

sYYYY = objData.Search.YYYY.substr(0,4)-1;

この式で明確なのは最終的にsubstr(0,4)で文字列を先頭から4文字取得していること

くらいで、その他のオブジェクトは不明なのですよね。まず最後の-1を削除した結果を

確認してください。こういった問題はデバッガで各変数の値を確認すると解決が早いの

ですが、簡易的にalert(objData);alert(YYYY.substr(0,4)-1);で部分的な評価

結果を確認されてはいかがでしょうか。

id:anim130M

回答ありがとうございます。

2011/01/23 01:39:16
id:k-tan2 No.2

回答回数401ベストアンサー獲得回数48

ポイント35pt

YYYY="201101"

のように明示的に文字にすれば期待通りの値になる可能性があると思います。

YYYY=201101にしてるので数字(整数)として扱われて、

substrとかも評価されずに動作してる可能性が高いです。

id:anim130M

回答ありがとうございます。

2011/01/23 01:39:40
  • id:deflation
    objDataの構造が分からないのですが、以下のスクリプトだったら sYYYY の結果は 2010 になりますよ。

    var YYYY = '201101';
    var sYYYY = YYYY.substr(0,4)-1;

    objDataの構造をお知らせください。
  • id:Cherenkov
    入力と出力の例があやふやで、YYYY=201101 をどう加工したいのかが伝わってきません。
  • id:sayo212sayo
    質問内容と直接関係しないことで失礼します。
    最近コメント荒らしが増えています。
    質問中はコメント欄をクローズしておいた方が安全です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません