JavaScript - 配列内の特定の要素を削除する方法

配列から特定のIndexの要素を削除する方法を紹介します。

1. splice()で配列から特定のIndexの要素を削除する

splice(start, deleteCount) は、配列内のstart IndexからdeleteCountの数だけ要素を削除します。

たとえば splice(2, 1) は配列の Index 2 から 1 つの要素を削除します。そして、splice()関数で要素を削除すると、削除された要素数だけ配列の長さも短くなります。

let arr = [1, 2, 3, 4, 5];

arr.splice(2, 1);
console.log(arr);

arr.splice(1, 1);
console.log(arr);

Output:

[ 1, 2, 4, 5 ]
[ 1, 4, 5 ]

2. deleteで配列から特定のIndexの要素を削除する

delete arr[index]arr[index] を削除します。しかし splice() と異なる点は、要素は削除されますが、配列の長さは減りません。配列を確認すると、要素が削除され、empty(undefined)で埋められています。

let arr = [1, 2, 3, 4, 5];

delete arr[2];
console.log(arr);
console.log("len: " + arr.length);

delete arr[1];
console.log(arr);
console.log("len: " + arr.length);

Output:

[ 1, 2, <1 empty item>, 4, 5 ]
len: 5
[ 1, <2 empty items>, 4, 5 ]
len: 5

空の値(undefined)を削除して配列の長さを減らしたい場合は、以下のように filter()などで空の値(undefined)を整理して新しい配列を作成する必要があります。 新しい配列にはundefinedは含まれておらず、削除された要素の数と同じくらい長くなりました。

let arr = [1, 2, 3, 4, 5];

delete arr[2];
delete arr[1];
console.log(arr);
console.log("arr.length: " + arr.length);

let newArr = arr.filter((element) => element !== undefined);
console.log(newArr);
console.log("newArr.length: " + newArr.length);

Output:

[ 1, <2 empty items>, 4, 5 ]
arr.length: 5
[ 1, 4, 5 ]
newArr.length: 3

配列の空の値を削除する方法の詳細については、JavaScript - 配列から空の値、undefined、nullを削除するを参照してください。

3. pop() で最後の要素を削除

pop() は配列の最後の要素を削除します。要素が削除されると、配列の長さも短くなります。

let arr = [1, 2, 3, 4, 5];

arr.pop();
console.log(arr);

arr.pop();
console.log(arr);

Output:

[ 1, 2, 3, 4 ]
[ 1, 2, 3 ]
codechachaCopyright ©2019 codechacha