Aufgabe: Zuerst habe ich eine Variable var arr = [0,1,2,3,4,5] definiert. Jetzt möchte ich die Push-Methode simulieren, um nach 5 etwas in dieses Array einzufügen. wir Was ist zu tun? Ich gebe Ihnen 5 Minuten Bedenkzeit. Bitte schauen Sie nicht nach unten, bevor Sie darüber nachgedacht haben.
Analyse: Wir wollen am Ende dieses Arrays etwas hinzufügen, oder? Der entscheidende Punkt ist, wie wir die letzte Position des Elements finden können. Betrachten wir zunächst nicht die letzte Position. Denken wir zunächst darüber nach, wie wir normalerweise auf den Inhalt eines Arrays zugreifen. Wenn wir auf einen Index zugreifen, der größer als dieser Array ist, ist er undefiniert Wenn es keinen solchen Index gibt, ist es einfach undefiniert. Wenn wir weiterhin 1 zum Index dieses Arrays hinzufügen, ist es dann die Position, nach der wir suchen. Obwohl diese Methode in Ordnung ist, habe ich eine Eine bessere Möglichkeit, das Längenattribut zu verwenden, ist die Länge dieses Arrays. Dann ist diese Länge der Index dieses Arrays + 1. Wir möchten diesem Index nur Inhalt hinzufügen.
Code:
var arr = [0,1,2,3,4,5]; arr.length 获取这个数组的最后位置
Aufgabe: Nachdem wir nun die letzte Position des Arrays ermittelt haben, können wir Inhalte hinzufügen. Zu wem hinzugefügt werden soll und wie hinzugefügt werden soll.
Analyse: Überlegen Sie nun, wie Sie Inhalte zu einem Array hinzufügen können? Die erhaltene Länge ist die Position, die wir hinzufügen möchten.
Synthese:
var arr = [0,1,2,3,4,5]; function Push(value){ arr[arr.length] = value; } Push(6); console.log(arr); //[0, 1, 2, 3, 4, 5, 6]
Aufgabe: Obwohl Sie jetzt Inhalte hinzufügen können, können Sie jeweils nur einen hinzufügen. Was soll ich tun?
Analyse: Ich vermisse meinen alten Freund plötzlich. Dieser alte Freund kann uns helfen, einige sich wiederholende Dinge zu erledigen, also bitten wir ihn, uns zu helfen.
Code:
Analyse: Wie sollen wir das schreiben? Wie viel kleiner bin ich? Sind es genauso viele, wie wir hinzufügen? Wie viele Bits müssen wir also hinzufügen? Es scheint, dass wir es wirklich nicht wissen, aber ein alter Freund weiß, dass es sich um Argumente handelt, die die von uns übergebenen Parameter abrufen können, und dass es sich um ein Pseudo-Array handelt, was bedeutet, dass es auch das Längenattribut wie ein Array verwenden kann um die Parameter zu erhalten, die wir übergeben. Die tatsächliche Parameterlänge.
Code:
for(var i=0;i<arguments.length;i++){}
Analyse: Die Frage ist nun: Welchen Inhalt fügen wir wo hinzu? Zurück zu unserer Aufgabe: Wollen wir den Inhalt, den wir übergeben haben, an der letzten Position eines Arrays hinzufügen? Wir haben anscheinend gesagt, dass Argumente seinen Inhalt erhalten können.
Code:
var arr = [0,1,2,3,4,5]; function Push{ for(var i=0;i<arguments.length;i++){ arr[arr.length] = arguments[i]; } } Push(6,7,8);
Fertig.
Außerschulische Erweiterung: Freunde mit Grundkenntnissen
Ok, obwohl die Aufgabe abgeschlossen ist, besteht das Problem jetzt darin, dass dieser Code nur das Array arr bedienen kann. Wenn wir diese Funktion für alle Arrays bereitstellen möchten, müssen wir diese Methode zum Prototyp von Array hinzufügen.
var arr = [0,1,2,3,4,5]; Array.prototype.Push = function{ for(var i=0;i<arguments.length;i++){ this[this.length] = arguments[i]; } } arr.Push(1,2,3)
Ändern Sie das arr in diesem Artikel. Wenn Sie mehr darüber erfahren möchten, können Sie den Inhalt dieses Artikels nicht auswendig lernen.