Magicode logo
Magicode
0

なかなか覚えられないJavascriptのリスト

追加 (破壊的)

末尾
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を使う

Discussion

コメントにはログインが必要です。