これは、位置"index"に値が存在するかどうかをテストするために機能するでしょうか、それとも他に良い方法があるでしょうか。
if(arrayName[index]==""){
// do stuff
}
JavaScriptのすべての配列は、array.length
個の要素を持ち、array[0]
からarray[array.length - 1]
までの範囲である。 定義によれば、添字が i
の配列要素は、 i
が 0
から array.length - 1
までの範囲にあれば、その配列の一部であるとされます。
つまり、JavaScriptの配列は0から始まって最大までの直線的なものであり、配列には特定の値や範囲を配列から除外する仕組みはありません。与えられた位置のインデックス(インデックスは0または正の整数)に値が存在するかどうかを調べるには、文字通り次のように使用します。
if (index < array.length) {
// do stuff
}
しかし、配列の値の中には、NULL、undefined
、NaN
、Infinity
、0など、さまざまな値が含まれている可能性があります。 例えば、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
}