Rumah  >  Soal Jawab  >  teks badan

Apakah nilai pulangan selepas pop() push() unshift() shift() beroperasi pada tatasusunan dalam Javascript?

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?

女神的闺蜜爱上我女神的闺蜜爱上我2663 hari yang lalu1501

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-06-12 09:27:04

    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

    balas
    0
  • 迷茫

    迷茫2017-06-12 09:27:04

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

    balas
    0
  • Batalbalas