配列のコピー
代入だと配列の要素のコピーはしない。
なのでそのまま値が上書きされてしまう。
var arr = [3,4,5];
var arr2 = arr;
arr2[0] = 123;
alert(arr);//123,4,5
配列をコピーする場合はcancatメソッドか、sliceメソッドを使う。
concatでの配列コピー
var arr = [3,4,5];
var arr2 = [].concat(arr); //配列コピー
arr2[0] = 123;
alert(arr); //3,4,5のまま(上書きされてない)
sliceでの配列コピー
var arr = [3,4,5];
var arr2 = arr.slice(0, arr.length); //配列コピー
arr2[0] = 123;
alert(arr); //3,4,5のまま(上書きされてない)
配列の削除
delete演算を使う。
削除した要素には隙間ができてしまうのでspliceメソッドを使う。
var arr = ['foo','bar','baz'];
delete arr[1];
alert(arr); //foo,,baz (空白が残る)
arr.splice(1,1); //インデックス1番目から1つの要素を削除
alert(arr); //foo,baz
配列の要素の列挙
for文の場合
var arr = ['foo','bar','baz'];
for(var i = 0, len = arr.length; i < len; i++) {
alert(arr[i]);
}
forEachメソッド
var arr = ['foo','bar','baz'];
//e:要素値
//i:インデックス値
//a:配列オブジェクト
arr.forEach(function(e,i,a) { alert(e+i); });
//foo0
//bar1
//baz2