NOTE
- 配列は通常のオブジェクトと異なる振る舞いをすることがある
配列の値の更新
const l = [1, 2, 3];
l[0] = 'A';
console.log(l) // [ 'A', 2, 3 ]
配列の要素数 length
const l = [1, 2, 3];
console.log(l.length); // 3
const l = [1, 2, 3];
for (let i = 0; i < l.length; i++) {
console.log(l[i]);
}
配列に要素を追加・削除・抽出
末尾に追加 push
const l = [1, 2, 3];
l.push(4);
// [1, 2, 3, 4]
末尾を取り除く pop
const l = [1, 2, 3];
l.pop(); // 引数不要
// [1, 2]
末尾を抽出
const l = [1, 2, 3];
const last = l.pop();
// 3
先頭を取り除く shift
const l = [1, 2, 3];
l.shift();
// [ 2, 3 ]
先頭を抽出
const l = [1, 2, 3];
const first = l.shift();
// 1
先頭に追加 unshift
const l = [1, 2, 3];
l.unshift(0);
// [ 0, 1, 2, 3 ]
配列同士を結合 concat
const a = [1,2,3];
const b = [4,5,6];
let c = a.concat(b);
let d = b.concat(a);
console.log(c);
// [ 1, 2, 3, 4, 5, 6 ]
console.log(d);
// [ 4, 5, 6, 1, 2, 3 ]
要素の存在を確認 includes
l = ['aaa', 'bbb', 'ccc']
console.log(l.includes('aaa'));
// true
console.log(l.includes('ddd'));
// false
要素のインデックスを確認 indexOf
l = ['aaa', 'bbb', 'ccc']
console.log(l.indexOf('aaa'));
// 0
console.log(l.indexOf('ccc'));
// 2
console.log(l.indexOf('ddd'));
// -1 存在しない場合は -1 を返す
配列の並びを逆順にする reverse
l = ['aaa', 'bbb', 'ccc']
console.log(l.reverse(l));
// [ 'ccc', 'bbb', 'aaa' ]
配列をスライス slice
l = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
l_2 = l.slice(2);
// [ 'ccc', 'ddd', 'eee' ]
l_3 = l.slice(1, 3);
// [ 'bbb', 'ccc' ]
l_4 = l.slice(-1);
// [ 'eee']
配列の一部を削除・追加 splice
一部を削除
l = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
l_2 = l.splice(2, 1);
// インデックス[2]の要素から 1つの要素を削除
console.log(l_2);
// [ 'ccc' ]
console.log(l);
// [ 'aaa', 'bbb', 'ddd', 'eee' ]
l = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
l_2 = l.splice(2, 2);
// インデックス[2]の要素から 2つの要素を削除
console.log(l_2);
// [ 'ccc', 'ddd' ]
console.log(l);
// [ 'aaa', 'bbb', 'eee' ]
特定の場所に追加
l = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
l_2 = l.splice(2, 0, 'zzz');
// インデックス[2]の要素から、要素を削除せず、新規に追加
console.log(l_2);
// [] *何も削除していないので空のリストが返される
console.log(l);
// [ 'aaa', 'bbb', 'zzz', 'ccc', 'ddd', 'eee' ]