1

アクションを実行する前に、配列内の次の要素が存在するかどうかを確認したいのですが、未定義かどうかを確認できません。例えば:

// Variable and array are both undefined
alert(typeof var1);   // This works
alert(typeof arr[1]); // This does nothing

var arr = [1,1];
alert(typeof arr[1]); // This works now
4

2 に答える 2

6
alert(typeof arr[1]); // This does nothing

エラーで失敗しているため、何もしません。

ReferenceError: arr is not defined

代わりにこの方法を試してみると:

var arr = [];
alert(typeof arr[1]);

その後、期待どおりの結果が得られます。ただし、このチェックを行うより良い方法.lengthは、配列のプロパティを使用することです。

// Instead of this...
if(typeof arr[2] == "undefined") alert("No element with index 2!");

// do this:
if(arr.length <= 2) alert("No element with index 2!");
于 2012-12-24T23:09:01.303 に答える
0

配列を操作するときは、配列インデックスにアクセスする前に、配列自体も確認する必要があります。

間違い:

if (arr[0] == ...)

良い:

if (typeof arr != "undefined" and arr[0]==......
于 2012-12-24T23:13:47.493 に答える