追加 (破壊的)
末尾
let a = ['a', 'b'];
a.push('c');
console.log(a)// ['a', 'b', 'c']
先頭
let a = ['b', 'c'];
a.unshift('a');
console.log(a);// ['a', 'b', 'c']
場所を指定
let a = ['a', 'b', 'c'];
a.splice(1, 0, 'A'); //二番目に挿入
console.log(a);// ['a', 'A', 'b', 'c']
a = ['a', 'b', 'c'];
a.splice(2, 0, 'A', 'B'); //三番目に複数挿入
console.log(a);//['a', 'b', 'A', 'B', 'c']
削除
先頭
let array = ['a', 'b', 'c'];
array.shift();
console.log(array); // ['b', 'c']
末尾
let array = ['a', 'b', 'c'];
array.pop();
console.log(array); // ['a', 'b']
インデックスを指定して削除
let array = ['a', 'b', 'c'];
array.splice(1, 1); // 二番目から一つ削除
console.log(array); // ['a', 'c']
array = ['a', 'b', 'c','d'];
array.splice(1, 2); // 二番目から二つ削除
console.log(array); // ['a','d']
spliceは削除のついでに追加もできる
結合
破壊
let array1 = ['a', 'b'];
let array2 = ['c', 'd'];
Array.prototype.push.apply(array1, array2);
console.log(array1); // ['a', 'b', 'c', 'd']
非破壊
let array1 = ['a', 'b'];
let array2 = ['c', 'd'];
let array = array1.concat(array2); // ['a', 'b', 'c', 'd']
全削除
let array = ['a', 'b', 'c'];
array.length = 0;
console.log(array); // []
ソート
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);// ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);// [1, 100000, 21, 30, 4] 文字列としてソート
const array1 = [1, 30, 4, 21, 100000];
array1.sort((a,b)=>{ return a-b;})
console.log(array1);// [1, 4, 21, 30, 100000] 数値としてソート
マップ
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1);// Array [2, 8, 18, 32]
条件を指定して残す
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);// ["exuberant", "destruction", "present"]
for
inはインデックス、ofが要素
最大、最小
const array = [3, 1, 5, 9];
const max = Math.max.apply(null, array);
const min = Math.min.apply(null, array);
console.log(max); // 9
console.log(min); // 1
値指定での削除
Arrayに直接のAPIはないindexOfかfilterを使う。
Setなら可能。重複が気になるときはSetを使う