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

JavaScript: Array Immutably dengan `toSorted()`

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

Kalau kamu butuh array yang terurut tapi tidak ingin mengubah array asli, toSorted() jawabannya.

1. Dasar toSorted()

let sortedArray = array.toSorted([compareFunction]);
  • Mengembalikan array baru yang sudah terurut.
  • Array asli tetap utuh.
  • compareFunction opsional, bisa untuk menentukan urutan custom.

Contoh:

const numbers = [5,3,8,1];
const sortedNumbers = numbers.toSorted();

console.log(sortedNumbers); // [1,3,5,8]
console.log(numbers);       // [5,3,8,1]

2. Mengurutkan Objek

const students = [
  { name: 'Alice', grade: 85 },
  { name: 'Bob', grade: 92 },
  { name: 'Charlie', grade: 88 }
];

const sortedByGrade = students.toSorted((a,b) => b.grade - a.grade);

console.log(sortedByGrade);
/* [
  { name: 'Bob', grade: 92 },
  { name: 'Charlie', grade: 88 },
  { name: 'Alice', grade: 85 }
] */

console.log(students); // array asli tetap sama

3. Menggunakan Custom Compare Function

const words = ['banana','apple','cherry'];
const sortedWords = words.toSorted((a,b) => a.length - b.length);

console.log(sortedWords); // ['apple','banana','cherry']

4. Kegunaan Real-World

  • UI Rendering: Tampilkan daftar atau tabel terurut tanpa mengubah data asli.
  • Data Analysis: Analisis dataset sambil menjaga versi original.
  • Functional Programming: Mendukung prinsip immutable data structures.

5. Catatan Performa

toSorted() membuat array baru → butuh memory tambahan. Perhatikan saat array sangat besar.

Kesimpulan

toSorted() adalah solusi elegan untuk mengurutkan array tanpa memodifikasi array asli. Gini deh, fitur ini bikin kode lebih aman, bersih, dan gampang dipelihara.

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