2011-06-30 11 views
0

現在、配列にデータを順番に挿入するためのループを設計する方法を理解しようとしています。 Unity3DエンジンでJavascriptを使用しています。配列にデータを順番に挿入する

基本的に、私は配列内に一連の座標位置を保存したいと思います。ユーザーが画面をクリックするたびに、スクリプトが座標位置を取得します。問題は、これを配列に挿入する方法がわかりません。

配列のインデックスを確認して、配列[0]が使用されていることを確認したら、配列[1]を使用しますか?おそらく、ある種のForループやカウンタがありますか?

おかげ

答えて

3

わずかだけ(.push使用し、アレイの末尾に追加します)。

var myArray = []; 
var coord1 = [12,59]; 
var coord2 = [87,23]; 

myArray.push(coord1); 
myArray.push(coord2); 

myArrayは、2つのアイテム(それぞれ2つの座標の配列です)を含んでいます。

ここでやったようにすべて静的に宣言していた場合(この場合は配列全体を静的に宣言できます)、このサンプルを作成して配列の最後に項目を追加します。

プッシュオンのリファレンスドキュメントはhttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pushを参照してください。

将来アレイを読み込むときに配列の長さを知る必要がある場合は、.length属性を使用できます。 jfriend00により示唆されるように

var lengthOfArray = myArray.length; 
+0

+1 - あなたの投稿を編集して「長さ」についてのビットを追加しても、私の答えは以下のように冗長になりました(私はあなたが編集したのと同時に入力していました)。 – nnnnnn

+0

最後の項目を配列から削除する(値を返し、配列から削除する)には、 'pop'を使うこともできます。配列の先頭を扱うためには、はるかに遅くなる可能性のあるそれぞれの関数は、 'unshift'(先頭に追加)と' shift'(先頭から戻って削除)です。 – brymck

0

.push()メソッドを使用すると、あまりにも私の推薦ですが、次のインデックスを使用して、配列のlengthプロパティを使用することができますが何であるかをうまくする方法についてのご質問にお答えします。 JavaScriptの配列はゼロベースであるためlengthプロパティは、現在の最大インデックスより1大きい整数を返しますので、lengthはまた、あなたが最後に別の項目を追加したい場合に使用するインデックス値になります。

anArray[anArray.length] = someValue; // add to end of array

配列の最後の要素を取得するには、もちろんanArray[anArray.length-1]と言うことができます。

var myArray = []; 
myArray[0] = "something"; 
myArray[1] = "something else"; 
myArray[50] = "something else again"; 
alert(myArray.length); // gives '51' 
// accessing any unused indexes will return undefined 
:JavaScriptの配列は、あなたがインデックスをスキップするためにはかなり満足しているので、ほとんどの目的のために lengthは、配列の要素数を与えるだろうが、私は上記の「現在の最大インデックスより1高い」と述べたことを

注意

関連する問題