Remove Element From Array Javascript Without Splice

Remove Element From Array Javascript Without Splice

4 min read Jun 20, 2024
Remove Element From Array Javascript Without Splice

Cara Menghapus Elemen dari Array JavaScript Tanpa splice()

Dalam JavaScript, fungsi splice() merupakan alat yang umum digunakan untuk menghapus elemen dari array. Namun, terkadang kita mungkin perlu menghapus elemen tanpa mengubah panjang array asli, dan di sinilah kita bisa memanfaatkan teknik alternatif.

Berikut adalah beberapa metode untuk menghapus elemen dari array JavaScript tanpa menggunakan splice():

1. Menggunakan filter()

Metode filter() memungkinkan kita untuk membuat array baru yang berisi elemen-elemen yang memenuhi kondisi tertentu. Dalam konteks ini, kita dapat menggunakan filter() untuk membuat array baru yang tidak berisi elemen yang ingin kita hapus.

Contoh:

const numbers = [1, 2, 3, 4, 5];
const removeNumber = 3;

const filteredNumbers = numbers.filter(number => number !== removeNumber);

console.log(filteredNumbers); // Output: [1, 2, 4, 5]

Dalam contoh ini, filter() membuat array baru filteredNumbers yang tidak berisi angka 3.

2. Menggunakan reduce()

Metode reduce() memungkinkan kita untuk melakukan iterasi melalui array dan menghasilkan nilai tunggal. Kita dapat menggunakan reduce() untuk membuat array baru yang tidak berisi elemen yang ingin kita hapus.

Contoh:

const numbers = [1, 2, 3, 4, 5];
const removeNumber = 3;

const reducedNumbers = numbers.reduce((acc, curr) => {
  if (curr !== removeNumber) {
    acc.push(curr);
  }
  return acc;
}, []);

console.log(reducedNumbers); // Output: [1, 2, 4, 5]

Dalam contoh ini, reduce() membuat array baru reducedNumbers yang tidak berisi angka 3.

3. Menggunakan indexOf() dan slice()

Kita dapat menggunakan kombinasi indexOf() dan slice() untuk menghapus elemen dari array. indexOf() membantu menemukan indeks elemen yang ingin kita hapus, dan slice() membantu membuat array baru tanpa elemen tersebut.

Contoh:

const numbers = [1, 2, 3, 4, 5];
const removeNumber = 3;

const index = numbers.indexOf(removeNumber);
const newNumbers = numbers.slice(0, index).concat(numbers.slice(index + 1));

console.log(newNumbers); // Output: [1, 2, 4, 5]

Dalam contoh ini, indexOf() menemukan indeks angka 3, lalu slice() membuat array baru tanpa elemen pada indeks tersebut.

4. Menggunakan Object.assign() dan Object.keys()

Jika kita bekerja dengan array asosiatif, kita dapat memanfaatkan Object.assign() dan Object.keys() untuk menghapus elemen tertentu.

Contoh:

const obj = { a: 1, b: 2, c: 3 };

const removeKey = 'b';

const newObj = Object.assign({}, obj);
delete newObj[removeKey];

console.log(newObj); // Output: { a: 1, c: 3 }

Dalam contoh ini, Object.assign() membuat salinan objek asli, dan kemudian delete menghapus properti b dari objek baru.

Catatan:

  • Ketiga metode di atas membuat array baru, tanpa mengubah array asli.
  • Metode filter() dan reduce() lebih umum digunakan untuk membuat array baru dengan elemen yang terfilter, sedangkan indexOf() dan slice() lebih efektif untuk menghapus elemen yang berada pada indeks tertentu.

Pilihan metode terbaik tergantung pada kebutuhan dan preferensi Anda.