これは、位置"index"に値が存在するかどうかをテストするために機能するでしょうか、それとも他に良い方法があるでしょうか。
if(arrayName[index]==""){ // do stuff }
JavaScriptのすべての配列は、array.length個の要素を持ち、array[0]からarray[array.length - 1]までの範囲である。 定義によれば、添字が i の配列要素は、 i が 0 から array.length - 1 までの範囲にあれば、その配列の一部であるとされます。
array.length
array[0]
array[array.length - 1]
i
0
array.length - 1
つまり、JavaScriptの配列は0から始まって最大までの直線的なものであり、配列には特定の値や範囲を配列から除外する仕組みはありません。与えられた位置のインデックス(インデックスは0または正の整数)に値が存在するかどうかを調べるには、文字通り次のように使用します。
if (index < array.length) { // do stuff }
しかし、配列の値の中には、NULL、undefined、NaN、Infinity、0など、さまざまな値が含まれている可能性があります。 例えば、array.lengthプロパティを増やして配列の値を追加した場合、新しい値はすべてundefinedになります。
undefined
NaN
Infinity
与えられた値が意味のあるものであるかどうか、あるいは定義されたものであるかどうかを判断します。 つまり、undefined`ではない、またはnullです。
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 }
if(!arrayName[index]){ // do stuff }
if(arrayName.length > index && arrayName[index] !== null) { //arrayName[index] has a value }
JavaScriptのすべての配列は、
array.length
個の要素を持ち、array[0]
からarray[array.length - 1]
までの範囲である。 定義によれば、添字がi
の配列要素は、i
が0
からarray.length - 1
までの範囲にあれば、その配列の一部であるとされます。つまり、JavaScriptの配列は0から始まって最大までの直線的なものであり、配列には特定の値や範囲を配列から除外する仕組みはありません。与えられた位置のインデックス(インデックスは0または正の整数)に値が存在するかどうかを調べるには、文字通り次のように使用します。
しかし、配列の値の中には、NULL、
undefined
、NaN
、Infinity
、0など、さまざまな値が含まれている可能性があります。 例えば、array.length
プロパティを増やして配列の値を追加した場合、新しい値はすべてundefined
になります。与えられた値が意味のあるものであるかどうか、あるいは定義されたものであるかどうかを判断します。 つまり、undefined`ではない、または
null
です。または
面白いことに、JavaScriptの比較ルールにより、先ほどの例は以下のように最適化できます。