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

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

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

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

3回答

3163閲覧

javascriptのinArrayで、存在するのにのに-1になる

b1ackc0ffee

総合スコア267

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2015/12/17 03:57

APIから取得した祝日データの中に、2015/11/03があるかどうかを、
inArrayで確認したところ、-1がかえってきました。

getItemでは、拾えているのに、inArrayではヒットしない可能性ってあるのでしょうか?

ちなみに、
"2015-02-11", "2015-11-03","2015-11-23",の3つが-1
となり、それ以外はインデックスが返ってきます。

getItemの文字と、変数nowの値は完全に一致しているのに、
-1となります。
何が原因かわからないので、わかる方いらっしゃれば教えてください。

■getItemでの結果

["2014-12-23","2014-12-31","2015-01-01","2015-01-02","2015-01-12","2015-02-11","2015-04-29","2015-05-04","2015-05-05","2015-05-06","2015-07-20","2015-09-21","2015-09-22","2015-09-23","2015-10-12","2015-11-03","2015-11-23","2015-12-23","2015-12-31"]

■JS

javascript

1var now= nowyear + '-' + nowmonth + '-' + _day; 2 3var arrayHoliday = getItem(); 4 5 if ($.inArray(now, arrayHoliday) != -1) { 6 html += '<td class="holiday">'; 7} 8

■ログ

now: -1
nowyear:2015, nowmonth:11, now:2015-11-03, year:2015, month:12, day:17, _day:03, i:3

宜しくお願いいたします。

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

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

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

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

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

Lhankor_Mhy

2015/12/17 04:51

getItem() はどういう関数なのでしょうか。
guest

回答3

0

jsfiddleでさっくりためしてみると、下記のコードでは正常に動作しました。
https://jsfiddle.net/41c2zhju/

他の方がおっしゃっている通り、arrayHolidaynowの値がおかしくなっていないか確認してみるのが良いかと思います。

javascript

1$(function() { 2 var a = ["2014-12-23","2014-12-31","2015-01-01","2015-01-02","2015-01-12","2015-02-11","2015-04-29","2015-05-04","2015-05-05","2015-05-06","2015-07-20","2015-09-21","2015-09-22","2015-09-23","2015-10-12","2015-11-03","2015-11-23","2015-12-23","2015-12-31"]; 3 var now= '2015' + '-' + '11' + '-' + '03'; 4 5 if ($.inArray(now, a) != -1) { 6 alert(now); 7 } 8});

投稿2015/12/17 05:12

k.tada

総合スコア1679

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

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

0

var now= nowyear + '-' + nowmonth + '-' + _day;

now が "2015-11-3" になっている可能性はありませんか?

投稿2015/12/17 04:47

think49

総合スコア18162

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

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

0

見る限り問題なさそうなので、ひとつひとつ切り分けていった方がよいと思います

1)nowの中身は正しく入っているか?
2)arrayHolidayの中身は正しく入っているか?
3)var arrayHoliday = ["2015-02-11"];としたらnow = "2015-02-11"はヒットするか?
4)inArray()を使わない方法ではうまくいくか?

javascript

1//単純な検索 2for( i=0; i<arrayHoliday.length; i++ ){ 3 if( arrayHoliday[i] == now ){ 4 alert(i); 5 } 6}

など

また、inArray() は jQuery の API ですので、質問タグにjQueryを追加した方がよいと思います

投稿2015/12/17 04:33

takito

総合スコア3111

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問