[解決済み】JavaScriptで、ある配列のインデックスに値が存在するかどうかを確認するにはどうすればよいですか?
質問
の位置の値が正しいかどうかをテストするために使用できますか?
index
が存在するかどうか、あるいはもっと良い方法があるかどうか。
if(arrayName[index]==""){
// do stuff
}
解決方法は?
概念的には、JavaScriptの配列は
array.length
要素から始まり
array[0]
まで
array[array.length - 1]
. インデックスを持つ配列要素
i
の場合、配列の一部であると定義されます。
i
の間にある
0
と
array.length - 1
を包含しています。 iがこの範囲になければ、配列には含まれません。
つまり、配列はゼロから始まって最大まで続く直線的なものであり、その範囲内にエントリーが存在しない「ギャップ」が存在する仕組みはないのです。 ある位置のインデックス(インデックスは0または正の整数)に値が存在するかどうかを調べるには、文字通り、次のようにします。
if (i >= 0 && i < array.length) {
// it is in array
}
なぜなら動的言語ではあまり意味をなさないし、特定のコードでは非効率だからです。 おそらくハッシュテーブルか、そのハイブリッドな混合戦略で、配列の未定義の範囲にはそれ自身のメモリは割り当てられないでしょう。 それにもかかわらず、JavaScriptは、言語が配列を提示したい
array.length
n
として
n
のメンバーで、それらは
0
から
n - 1
であり、この範囲にあるものはすべて配列の一部となります。
しかし、おそらくあなたが欲しいのは、配列の中のある値が
実際に定義されたもの
- つまり、それは
undefined
. もしかしたら、それが定義されているかどうかさえ知りたいかもしれませんし
ない
null
. 値を設定せずに配列のメンバーを追加することは可能です。
array.length
プロパティを使用すると、新しい値はすべて
undefined
.
与えられた値が何か意味のあるものであるか、定義されているかどうかを判断すること。 ということです。
ない
undefined
または
null
:
if (typeof array[index] !== 'undefined') {
または
if (typeof array[index] !== 'undefined' && array[index] !== null) {
興味深いことに、JavaScriptの比較ルールのおかげで、最後の例は次のように最適化することができる。
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}
関連
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列が空かヌルかチェックする