Apakah nilai pulangan selepas pop() push() unshift() shift() beroperasi pada tatasusunan dalam Javascript?
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:25:04
0
2
1562

Baru-baru ini saya membaca "Panduan Definitif untuk JavaScript (Edisi Ke-6)", diterjemahkan oleh pasukan Taobao. Lihat bab tentang tatasusunan untuk memperkenalkan beberapa kaedah tatasusunan JS.
pop() push() merawat tatasusunan sebagai tindanan, dan kemudian memadam dan menambah elemen tatasusunan pada penghujung tatasusunan.
unshift() shift() juga menganggap tatasusunan sebagai tindanan, tetapi ia memadam dan menambah elemen di kepala tatasusunan.
Keempat-empat kaedah akan mengemas kini panjang tatasusunan.
Tetapi berkenaan nilai pulangan yang dinyatakan, saya agak keliru selepas melihat contoh yang diberikan.
Contoh kod dari buku:

var statck=[]; //stack:[]
stack.push(1,2); //stack:[1,2]  返回2
stack.pop();   //stack:[1]      返回2
stack.push(3);  //stack:[1,3]   返回2
stack.pop();    //stack:[1]     返回3
stack.push([4,5]); //stack:[1,[4,5]]   返回2
stack.pop();  //stack:[1]       返回[4,5]
stack.pop(); // stack:[]    返回1

Nilai pulangan hendaklah nilai yang dipadamkan atau disisipkan pada masa ini
Nilai terakhir yang dimasukkan dalam baris kedua ialah 2, jadi nilai pulangan ialah 2.
Jadi mengapa terdapat nilai pulangan 2 dalam baris ke-4 kod di atas ? Bukankah itu nilai 3? Sebab nilai yang dimasukkan ialah 3.

stack.push(3); //stack:[1,3] 返回2

Kemudian baris 6 juga tidak memahami nilai pulangan seterusnya:

stack.push([4,5]); //stack:[1,[4,5]]   返回2

Mengapa nilai yang dikembalikan 2 bukannya 5?

女神的闺蜜爱上我
女神的闺蜜爱上我

membalas semua(2)
洪涛

Array.prototype.pop()
Nilai pulangan
Elemen yang dialih keluar daripada tatasusunan; tidak ditentukan jika tatasusunan kosong.

Array.prototype.push()
Nilai pulangan
Sifat panjang baharu objek yang menggunakan kaedah itu.

Array.prototype.unshift()
Nilai pulangan
Sifat panjang baharu objek yang menggunakan kaedah itu.

Array.prototype.shift()
Nilai pulangan
Elemen yang dialih keluar daripada tatasusunan; tidak ditentukan jika tatasusunan kosong.

即:push()unshift() 会返回新数组的长度,而 pop()shift() 会返回被移除的元素(当数组为空时返回 undefined

来源:MDN

迷茫

1, pusn mengembalikan panjang tatasusunan.
2, pop, mengembalikan elemen yang dipadamkan.
3, nyahshift, mengembalikan panjang tatasusunan.
4, shift mengembalikan elemen yang dipadamkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan