[解決済み] jQuery.inArray()、正しい使い方は?
2022-03-28 14:50:40
質問
初めて
jQuery.inArray()
で、ちょっと変な挙動をします。
オブジェクトが配列の中にある場合は0を返しますが、Javascriptでは0はfalseです。そのため、以下のように出力されます。 は配列に含まれません。
var myarray = [];
myarray.push("test");
if(jQuery.inArray("test", myarray)) {
console.log("is in array");
} else {
console.log("is NOT in array");
}
if文を変更する必要がありますね。
if(jQuery.inArray("test", myarray)==0)
しかし、これではコードが読めなくなります。特にこの関数を知らない人にとっては。彼らは、jQuery.inArray("test", myarray)が、"test"が配列にあるときに真を与えると思っているでしょう。
そこで質問なのですが、なぜこのような方法なのでしょうか?私はこれが本当に嫌いなんです。しかし、このような方法をとるには、それなりの理由があるはずです。
解決方法は?
inArray
は、配列内にその項目が存在するかどうかを示す boolean ではなく、配列内の要素のインデックスを返します。もしその要素が見つからなかった場合は
-1
が返されます。
そこで、ある項目が配列の中にあるかどうかを調べるには、次のようにします。
if(jQuery.inArray("test", myarray) !== -1)
関連
-
要素ツリー制御によるvueTreeテーブル
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
要素ツリー制御によるvueTreeテーブル
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
JavaScriptの配列共通メソッド解説
-
vueの補間表現とv-textディレクティブの違いについて
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】ExpressJS - throw er Unhandled errorイベント