13 single-liners JavaScript yang bermanfaat

Penulis artikel, terjemahan yang kami terbitkan hari ini, mengatakan bahwa ia telah memprogram dalam JavaScript selama bertahun-tahun. Selama waktu ini, ia mengumpulkan koleksi file single-line yang sangat baik - fragmen kode, sangat kuat, mengingat mereka cocok pada satu baris. Menurutnya, peluang besar juga merupakan tanggung jawab besar, jadi Anda perlu menggunakan konstruksi ini dengan hati-hati, berusaha memastikan bahwa mereka tidak merusak keterbacaan program.



Berikut adalah 13 pemain single-line. Contoh disiapkan menggunakan Node.js v11.x. Jika Anda menggunakannya di lingkungan lain, ini dapat mempengaruhi eksekusi mereka.

1. Pemaksaan nilai ke tipe logis


Berikut cara melemparkan nilai ke tipe boolean:

const myBoolean = !!myVariable; 

Diperlukan negasi ganda ( !! ) agar nilai yang benar dari sudut pandang aturan JavaScript dikonversi menjadi true dan false menjadi false .

2. Menyingkirkan nilai duplikat dalam array


Berikut cara menghapus nilai duplikat dari array:

 const deDupe = [...new Set(myArray)]; 

Set struktur data hanya menyimpan nilai unik. Akibatnya, menggunakan struktur data dan menyebar sintaksis seperti itu memungkinkan Anda untuk membuat array baru berdasarkan myArray yang tidak memiliki nilai duplikat.

3. Membuat dan mengatur properti objek berdasarkan kondisi


Untuk mengatur properti objek menggunakan operator && , Anda dapat menggunakan sintaksis penyebaran:

 const myObject = { ...myProperty && { propName: myProperty } }; 

Jika, sebagai hasil menghitung sisi kiri ekspresi, diterima sesuatu yang JS anggap sebagai nilai yang salah, maka && tidak akan melakukan perhitungan lebih lanjut dan properti baru tidak akan dibuat dan ditetapkan. myObject akan kosong. Jika konstruk ...myProperty mengembalikan beberapa hasil yang JS anggap benar, berkat && konstruk, properti propName muncul di objek, yang menyimpan nilai yang diterima.

4. Menggabungkan objek


Berikut cara membuat objek baru di mana dua objek lainnya akan digabungkan:

 const mergedObject = { ...objectOne, ...objectTwo }; 

Pendekatan ini dapat digunakan untuk mengatur penggabungan jumlah objek yang tidak terbatas. Selain itu, jika objek memiliki properti dengan nama yang sama, hanya satu properti tersebut yang akan tetap berada di objek akhir, yang milik salah satu dari objek asli, yang terletak di sebelah kanan yang lain. Harap perhatikan bahwa penyalinan kecil properti obyek digunakan di sini.

5. Pertukaran nilai variabel


Untuk bertukar nilai antara dua variabel tanpa menggunakan variabel bantu, Anda bisa melakukan ini:

 [varA, varB] = [varB, varA]; 

Setelah itu, apa yang ada di varA masuk ke varB , dan sebaliknya. Ini dimungkinkan berkat penggunaan mekanisme internal perusakan.

6. Menghapus nilai-nilai palsu dari array


Berikut cara menghapus semua nilai yang dianggap salah dalam JavaScript dari array:

 const clean = dirty.filter(Boolean); 

Selama operasi ini, nilai-nilai seperti null , undefined , false , 0 , serta baris kosong, akan dihapus dari array.

7. Mengkonversi angka menjadi string


Untuk mengonversi angka yang disimpan dalam array ke representasi string mereka, Anda bisa melakukan ini:

 const stringArray = numberArray.map(String); 

Elemen string array selama konversi tersebut akan tetap string.

Anda juga dapat melakukan transformasi terbalik dengan mengonversi nilai dari String tipe ke nilai dari tipe Number :

 const numberArray = stringArray.map(Number); 

8. Mengambil nilai properti objek


Berikut cara mengekstrak nilai properti objek dan menulisnya ke konstanta yang namanya berbeda dari nama properti ini:

 const { original: newName } = myObject; 

Menggunakan konstruksi ini, konstanta baru akan dibuat, newName , di mana nilai properti original objek myObject akan ditulis.

9. Memformat kode JSON


Berikut cara mengonversi kode JSON ke tampilan yang dapat dibaca:

 const formatted = JSON.stringify(myObj, null, 2); 

Metode stringify mengambil tiga parameter. Yang pertama adalah objek JavaScript. Yang kedua, opsional, adalah fungsi yang dapat digunakan untuk memproses kode JSON yang dihasilkan dari konversi objek. Parameter terakhir menunjukkan berapa banyak ruang yang harus digunakan ketika indentasi dalam kode JSON. Jika Anda menghilangkan parameter terakhir, maka semua kode JSON yang diterima akan menjadi satu string panjang. Jika objek myObj memiliki referensi melingkar, itu tidak dapat dikonversi ke format JSON.

10. Membuat array numerik dengan cepat


Berikut cara membuat array dan mengisinya dengan angka:

 const numArray = Array.from(new Array(52), (x, i) => i); 

Elemen pertama array tersebut memiliki indeks 0. Ukuran array dapat ditentukan menggunakan literal numerik atau variabel. Di sini kita membuat array 52 elemen, yang, misalnya, dapat digunakan untuk menyimpan data tentang setumpuk kartu.

11. Pembuatan kode untuk otentikasi dua faktor


Untuk menghasilkan kode enam digit yang digunakan dalam mekanisme otentikasi dua faktor atau yang serupa lainnya, Anda dapat melakukan ini:

 const code = Math.floor(Math.random() * 1000000).toString().padStart(6, "0"); 

Harap dicatat bahwa jumlah nol dalam jumlah yang hasilnya dikembalikan oleh Math.random() harus dikalikan harus sesuai dengan parameter pertama ( targetLength ) dari metode padStart .

12. Array pencampuran


Untuk mengocok sebuah array tanpa mengetahui apa sebenarnya isinya, Anda dapat melakukan ini:

 myArray.sort(() => { return Math.random() - 0.5}); 

Ada algoritma yang lebih baik untuk mencampur array. Misalnya, algoritma pengocokan Fisher-Yates. Baca tentang berbagai algoritma untuk memadukan array di sini .

13. Membuat salinan objek yang dalam


Metode penyalinan mendalam objek yang diusulkan di sini tidak berbeda dalam kinerja tinggi khususnya. Tetapi jika Anda perlu menyelesaikan masalah ini menggunakan one-liner, Anda dapat menggunakan kode berikut:

 const myClone = JSON.parse(JSON.stringify(originalObject)); 

Perlu dicatat bahwa jika ada tautan melingkar dalam objek originalObject , maka salinannya akan gagal. Teknik ini direkomendasikan untuk digunakan pada objek sederhana yang Anda buat sendiri.

Salinan dangkal objek dapat dibuat menggunakan sintaks spread:

 const myClone = { ...orignalObject }; 

Ringkasan: tentang menggabungkan dan memperluas kode single-line


Ada banyak cara untuk menggabungkan potongan kode yang disajikan di sini. Ini memungkinkan Anda untuk memecahkan banyak masalah dengan bantuan mereka dan pada saat yang sama menggunakan konstruksi bahasa yang sangat kompak. Penulis materi ini percaya bahwa selama evolusi JavaScript, fitur baru akan muncul di dalamnya yang akan membantu menulis kode yang ringkas dan kuat.

Pembaca yang budiman! Apa contoh JS single-lineers berguna yang akan Anda tambahkan ke materi ini?



Source: https://habr.com/ru/post/id456338/


All Articles