0

配列にポイントを追加する必要があるプロジェクトに取り組んでいます。オブジェクトを作成してから配列に追加しようとするコードは次のとおりです。

var points = [];
    points[0] = [];
    points[0][0] = 0; //x-coord
    points[0][1] = 0; //y-coord

points[points.length][0] = x; //Breaks on this line
points[points.length][1] = y;

私が得る正確なエラーはUncaught TypeError: Cannot set property '0' of undefinedです。このコードは、ボタンが押されるたびに実行され、他の値は既にints設定されています。JavaScript を使用すると、配列に値を設定できると思いましたか?

4

2 に答える 2

2

最後の配列インデックスはpoints.length - 1です。ここで、配列の末尾 ( ) を超えて要素をアドレス指定し、undefinedその "0" プロパティに の値を割り当てようとしていますx。プロパティを on に設定することundefinedはできません。

于 2012-05-11T17:30:33.650 に答える
1

あなたの配列が含まれています:

var points = [
    [0,0]
]

でも

points[points.length]
//is
points[1]

これは存在しません。実際に配列を追加する前に、最初に配列を作成する必要があります

これがサンプルです

var length = points.length;  //cache value, since length is "live"
points[length] = [];         //using the cached length, create new array
points[length][0] = x;       //add values
points[length][1] = y;
于 2012-05-11T17:31:02.303 に答える