Rumah > Soal Jawab > teks badan
Saya mengalami kesukaran pemula dengan latihan JS saya. Saya perlu menulis fungsi popAndShift(). Fungsi ini mula-mula mencetak kandungan tatasusunan tatasusunan1 dan tatasusunan2. Kemudian, keluarkan unsur tatasusunan2 secara bergilir-gilir menggunakan kaedah .pop() dan .shift() (bermula dengan .pop()) dan tambahkan nilai yang dialih keluar ke penghujung tatasusunan1. Akhir sekali, cetak kandungan array1. **Ujian automatik memberikan nilai kepada tatasusunan. ** Kod saya lulus ujian pertama tetapi gagal yang kedua. Saya tertanya-tanya sama ada saya perlu menggunakan gelung for untuk mencapai hasil yang diingini. terima kasih atas bantuan anda.
Kod dan tangkapan skrin ujian
function popAndShift(){ console.log("First array: " + array1); console.log("Second array: " + array2); RemoveE =array2.pop(); RemoveB=array2.shift(); RemoveC =array1.push(RemoveE,RemoveB,array2); console.log("Resulting array:" + array1); }
P粉9208354232023-09-12 19:54:24
Saya melihat imej yang anda berikan dan fungsi baharu ini sepatutnya berfungsi dan menghasilkan output yang diharapkan. Kami menyimpan pembolehubah yang dipanggil usePop
dan kemudian menggunakannya secara bergilir setiap kali kami menjalankan gelung sehingga tatasusunan2 kosong.
const array1 = ["A"]; const array2 = ["B", "C", "D", "E", "F", "G", "H", "I"]; function popAndShift(){ console.log("First array: " + array1); console.log("Second array: " + array2); let usePop = true; while (array2.length > 0) { array1.push(usePop ? array2.pop() : array2.shift()); usePop = !usePop; } console.log("Resulting array: " + array1); } popAndShift();
Keluaran:
First array: A Second array: B,C,D,E,F,G,H,I Resulting array: A,I,B,H,C,G,D,F,E