Heim > Fragen und Antworten > Hauptteil
Kürzlich habe ich „The Definitive Guide to JavaScript (6th Edition)“ gelesen, übersetzt vom Taobao-Team. Im Kapitel über Arrays finden Sie eine Einführung in einige Methoden von JS-Arrays.
pop() push() behandelt das Array als Stapel und löscht dann Array-Elemente und fügt sie am Ende des Arrays hinzu.
unshift()shift() behandelt das Array ebenfalls als Stapel, löscht jedoch Elemente am Kopf des Arrays und fügt sie hinzu.
Alle vier Methoden aktualisieren die Länge des Arrays.
Aber was den genannten Rückgabewert betrifft, bin ich etwas verwirrt, nachdem ich das gegebene Beispiel gesehen habe.
Beispielcode aus dem Buch:
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
Der Rückgabewert sollte der aktuell gelöschte oder eingefügte Wert sein
Der letzte in der zweiten Zeile eingefügte Wert ist 2, also ist der Rückgabewert 2.
Warum gibt es dann in der 4. Codezeile oben einen Rückgabewert von 2? ? Ist es nicht der Wert 3? Denn der eingefügte Wert ist 3.
stack.push(3); //stack:[1,3] 返回2
Dann versteht Zeile 6 auch den folgenden Rückgabewert nicht:
stack.push([4,5]); //stack:[1,[4,5]] 返回2
Warum ist der zurückgegebene Wert 2 statt 5?
PHP中文网2017-06-12 09:27:04
Array.prototype.pop()
Return value
The removed element from the array; undefined if the array is empty.
Array.prototype.push()
Return value
The new length property of the object upon which the method was called.
Array.prototype.unshift()
Return value
The new length property of the object upon which the method was called.
Array.prototype.shift()
Return value
The removed element from the array; undefined if the array is empty.
即:push()
和 unshift()
会返回新数组的长度,而 pop()
和 shift()
会返回被移除的元素(当数组为空时返回 undefined
)
来源:MDN
迷茫2017-06-12 09:27:04
1,pusn 返回的是数组的长度。
2,pop,返回的是删除的元素。
3,unshift, 返回的是数组的长度。
4,shift 返回的是删除的元素。