2011-06-03 7 views
5

JavaScriptでは、配列サイズを5(var foo = new Array(5);)に設定した場合、これはちょうど初期サイズですか?作成された要素の数を拡張できますか?このようなことも可能でしょうか?arr = new Array()して、要素を1つずつ割り当てますか?JavaScriptで配列サイズがどのように機能するか

答えて

5

を見てください。 1つの番号を使用しない場合は、すぐに入力することができます。

より単純な[]構文を使用する方が一般的です。

あなたは括弧を使用して設定(または交換)特定のインデックスができ
var arr = ['something', 34, 'hello']; 

arr[0] = "I'm here replacing whatever your first item was"; 

あなたはプッシュを使用して最後に追加することができます。

arr.push('add me'); 

高速なパフォーマンスがあるかもしれません代わりに次のようなブラウザを使用してください:

arr[arr.length] = 'add me'; 

任意のインデックスに何かを追加できます。

あなたは完全にスプライスを使用してアイテムを削除することができます

arr.splice(0, 1); // remove first item in the array (start at index 0, with 1 being removed) 
+0

[]は匿名配列のようですか? – rubixibuc

+0

@rubixibuc:いいえ、それは配列リテラルです。 –

+0

配列リテラルと無名配列の違いは何ですか? (これが愚かな質問である場合は、sry: - /) – rubixibuc

1

:-)事前に感謝はい、それだけで初期サイズであり、それが必要とされていないhttp://www.w3schools.com/js/js_obj_array.asp

var myCars=new Array(); // regular array (add an optional integer 
myCars[0]="Saab";  // argument to control array's size) 
myCars[1]="Volvo"; 
myCars[2]="BMW"; 
5

新しい配列(new Array(5)を使用して)JavaScriptで明示的なサイズを与えるとき、あなたはundefinedの値と各インデックスを移入。あなたはアウト詳細はMDCアレイのマニュアルをpush()

var arr = []; 
arr.push('first value'): 
arr.push('second value'): 

チェックを使用して新しい要素をプッシュすることができ、その後

var arr = []; 

:一般的に、配列リテラル[]式を使用してインスタンス化するために、より良い習慣を考えられているhttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

+1

実際'new Array(5)'を書くとき、各インデックスはまだ 'undefined'(' null'とは異なります)です。これは 'var arr = [];を実行するようなものです。 arr.length = 5; '。 –

+0

ああ、nullではなく、未定義です。正しいでしょう。 –

1

the documentation for Arrayを確認してください。質問に対する簡単な回答はです。です。

var arr5 = new Array(1, 2, 3, 4, 5); // an array with initial 5 elements 
var arr = new Array(); // an array without initial 

また、配列リテラルを使用することができます。

var arr5 = [1, 2, 3, 4, 5]; 
var arr = []; 
+0

私は、 'new Array(5)'バージョンが '[1,2,3,4,5]'と**同じ**ではないことを強調したかっただけです! –

+0

@Felix、あなたは絶対に正しいです。私のJavaの日々が始まりました。私は自分の答えを更新しました。 –

2

は宣言し、配列に値を入れるためにいくつかの方法をtheresの。

あなたが何をしたいかのような

まず、

var myarr = new Array(); 
myarr[0] = 'element1'; 
myarr[1] = 'element2'; 
myarr[2] = 'element3'; 

第二の方法は、彼らに

var myarr =new Array("element1","element2","element3"); 

を定義することで、3番目はあなたにもチェックすることができる二

var myarr =["element1","element2","element3"]; 

に似ています配列の使用に関するもう少し詳しくは、https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Arrayを参照してください。あなたがしたい場合は、プッシュとポップを使用することができます。

jqueryまたはmootoolsを使用する場合は、配列に対して実行する組み込み関数もあります( http://api.jquery.com/jQuery.each/など)。

0

配列はJavaScriptで動的です。一定の長さで初期化する必要はありません。実際には、あなたは理由Arrayコンストラクタの曖昧さのリテラル表記[]を使用する必要があります。

あなたはArrayに一つだけのパラメータを渡すと、それはこのパラメータに配列の長さを設定します。複数のパラメータを渡すと、これらの要素が配列に追加されます。

アレイのサイズはどのように決定されますか?

配列のサイズは、最も高いインデックス+ 1です。これはかなり混乱する可能性があります。このことを考えてみましょう:

var arr = []; 
arr[41] = 'The answer?'; 
console.log(arr); // [undefined, undefined, ..., 'The answer?'] 
console.log(arr.length) // 42 

あなたも.lengthに番号を割り当てることによって、長さを自分で設定することができます。

arr.length = 99; 

をあなたは今arr.push()を使用して新しい要素を追加した場合、それはインデックス100と長さを取得します増加するでしょう。インデックスを介して配列に要素を追加すると、arr.lengthがインデックスよりも小さいかどうかがテストされ、それに応じて更新されます。しかし、それは小さくなりません。

実際にはvar arr = new Array(5)は、配列の長さを5に設定しています。他に何もない。


アレイの作成、移入の詳細については、私はMDC JavaScript Guideでそれについて読むことをお勧めします。

関連する問題