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?

