LoginSignup
5
5

More than 5 years have passed since last update.

配列のコピー・削除・列挙

Posted at

配列のコピー

代入だと配列の要素のコピーはしない。
なのでそのまま値が上書きされてしまう。

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
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5