Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

JavaScript: Array Immutably dengan `toSpliced()`

1 min read .
JavaScript: Array Immutably dengan `toSpliced()`

Kalau kamu ingin memodifikasi array tapi tetap menjaga array asli, toSpliced() jawabannya.

1. Dasar toSpliced()

let newArray = array.toSpliced(start[, deleteCount[, ...items]]);
  • Membuat array baru dengan elemen dihapus atau diganti.
  • Array asli tetap utuh.
  • start: indeks mulai perubahan.
  • deleteCount: jumlah elemen yang dihapus.
  • ...items: elemen yang ditambahkan.

Contoh:

const fruits = ['apple','banana','cherry','date'];
const updatedFruits = fruits.toSpliced(1,2,'blueberry','fig');

console.log(updatedFruits); // ['apple','blueberry','fig','date']
console.log(fruits);        // ['apple','banana','cherry','date']

2. Insert & Replace Elemen

const numbers = [1,2,3,4,5];
const modifiedNumbers = numbers.toSpliced(2,1,6,7);

console.log(modifiedNumbers); // [1,2,6,7,4,5]
console.log(numbers);         // [1,2,3,4,5]

3. Kegunaan Real-World

  • UI Manipulation: Membuat daftar/menu baru tanpa mengubah array asli.
  • State Management: Cocok untuk aplikasi yang menggunakan prinsip immutability.
  • Versioning: Membuat versi array berbeda untuk rollback atau perbandingan.

4. Catatan Performa

toSpliced() membuat array baru → butuh memory tambahan, jadi perhatikan saat array sangat besar.

Kesimpulan

toSpliced() memudahkan modifikasi array tanpa mengubah array asli. Gini deh, fitur ini bikin kode lebih aman, predictable, dan gampang dipelihara, terutama di functional programming atau state management.

Lihat Juga

JavaScript: Cara Cepat Mengelompokkan Data dengan `Object.groupBy()`
JavaScript: Cara Cepat Mengelompokkan Data dengan `Object.groupBy()`
Kadang di proyek JS, saya perlu mengelompokkan data biar lebih mudah diproses. Object.groupBy() bikin hidup lebih gampang. 1. Dasar Object.groupBy() Copy Object.groupBy(array, callback); array → data yang mau dikelompokkan callback → menentukan key tiap elemen 2. Contoh Sederhana: Genap/Ganjil Copy const numbers = [1,2,3,4,5,6,7,8,9,10]; const grouped = Object.groupBy(numbers, n => n % 2 === 0 ? 'even' : 'odd'); console.log(grouped); // { even:[2,4,6,8,10], odd:[1,3,5,7,9] } 3. Mengelompokkan Objek Berdasarkan Properti Copy const products = [ {name:'Laptop', category:'Electronics'}, {name:'Shirt', category:'Clothing'}, {name:'Phone', category:'Electronics'} ]; const groupedProducts = Object.groupBy(products, p => p.category); console.log(groupedProducts); // { Clothing:[{…}], Electronics:[{…},{…}] } 4. Grup Berdasarkan Kriteria Kompleks Copy const numbers = [1,5,10,15,20,25,30]; const groupedByRange = Object.groupBy(numbers, n => n <=10 ? '1-10' : n <=20 ? '11-20' : '21-30'); console.log(groupedByRange); 5. Menangani Nilai Kosong atau Tidak Valid Copy const items = [null,'apple',undefined,'banana','']; const groupedItems = Object.groupBy(items, item => item || 'unknown'); console.log(groupedItems); // { apple:['apple'], banana:['banana'], unknown:[null,undefined,''] } 6. Tips & Catatan Simpel & fleksibel: Bisa grup berdasarkan apa saja. Tidak mengubah array asli → aman untuk data asli. Perlu cek kompatibilitas browser → gunakan polyfill jika perlu. Kesimpulan Pada akhirnya, Object.groupBy() bikin pengelompokan data lebih gampang dan readable. Dari angka sampai objek kompleks, tinggal tentukan key, semua otomatis rapi. Gini deh, kadang hal kecil kayak ini bikin manipulasi data jauh lebih efisien.
chevron-up