Artikel ini akan meneroka sebab Array.prototype.at()
lebih ideal daripada Array[index]
apabila mengakses elemen tatasusunan.
Pada masa lalu, apabila mengakses elemen tatasusunan, saya pernah menggunakan Array[index]
, seperti Array[1]
. Inilah yang saya biasa dan bagaimana saya belajar untuk mendapatkan elemen tatasusunan.
Bagaimanapun, baru-baru ini seorang rakan sekerja bertanya dalam semakan kod: "Mengapa tidak menggunakan Array.prototype.at()
dan bukannya menggunakan indeks secara langsung?"
<code class="language-javascript">const element = arr[1];</code>
<code class="language-javascript">const element = arr.at(1);</code>
menerima integer sebagai hujah dan mengembalikan elemen yang sepadan dalam tatasusunan. Array.prototype.at()
<code class="language-javascript">const arr = ["One", "Two", "Three"];</code>
<code class="language-javascript">arr.at(0); // 返回 "One"</code>
. Anda mungkin tertanya-tanya, apa bezanya? Seterusnya kita akan menyelami kelebihan menggunakan pendekatan ini. array[0]
harus digunakan dan bukannya Array.prototype.at()
. Array[index]
<code class="language-javascript">const sports = ["basketball", "baseball", "football"];</code>
<code class="language-javascript">const lastElement = sports[sports.length - 1];</code>
: Array.prototype.at()
<code class="language-javascript">const lastElement = sports.at(-1);</code>
Taip inferens
dalam inferens jenis. undefined
<code class="language-typescript">const arr: string[] = []; const element = arr[0]; console.log(element); // undefined</code>
disimpulkan sebagai element
, bukan string
. string | undefined
Lazimnya, kami ingin memastikan elemen tatasusunan yang diakses wujud.
<code class="language-typescript">const arr: string[] = []; const element = arr[0]; if (typeof element === 'string') console.log(element);</code>
. string
<code class="language-typescript">const element: string | undefined = arr[0];</code>
Untuk menyelesaikan masalah ini, kita boleh mengambil dua pendekatan:
noUncheckedIndexedAccess
anda tidak perlu melakukan kedua-duanya. Array.prototype.at()
<code class="language-typescript">const arr: string[] = []; const element = arr.at(0); // string | undefined console.log(element);</code>
ke dalam nilai jenis lain element
anda akan mendapat ralat kompilasi: string
<code class="language-javascript">const element = arr[1];</code>
Gunakan Array.prototype.at()
untuk menulis kod yang lebih bersih dan elakkan daripada menambah fungsi dan konfigurasi tambahan.
Array.prototype.at()
Penjelasan pada Rangkaian Pembangun Mozilla: Pautan (sila ganti dengan pautan sebenar)
Atas ialah kandungan terperinci Menggunakan Array.at() atas Array[index]. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!