


Erweiterung und Reparatur von Arrays von Lesenotizen im Javascript-Framework-Design_Javascript-Fähigkeiten
1.indexOf- und lastIndexOf-Methoden:
Da IE7 einen Fehler meldet, wenn indexOf für ein Array-Objekt verwendet wird, muss es aus Kompatibilitätsgründen neu geschrieben werden.
Array.prototype.lastIndexOf(item,index){
var n = this.length,i = (index==null||index>n-1)?n-1:index;
if(i for(;i>=0;i--)
if(this[i] === item) //Kongruentes Urteil, indexOf, lastIndexOf
return i;
return -1;
}
2. Shuffle-Methode: Mischen Sie das Array.
Funktion shuffle(target){
var i = target.length, j ,temp;
for(;i>0;j=parseInt(Math.random() * i), x = target[--i],target[i] = target[j],target[j]=x){}
//Angenommen, Länge = 10, dann Math.random()*10->[0,10), nach parseInt, [0,9], zufällig eines auswählen, um es mit dem letzten Element des Arrays auszutauschen. Beim zweiten Durchlauf der Schleife wird [0,8] mit dem vorletzten Element des Arrays vertauscht.
Ziel zurückgeben;
}
3. Abflachen von Arrays: Abflachen, Rückgabe eines eindimensionalen Arrays
Funktion flatten(arr){
var result = [];
arr.forEach(function(item){
if(Array.isArray(item)) result.concat(flatten(item));
else result.push(item);
});
Ergebnis zurückgeben;
}
4.Einzigartige Methode: Deduplizierungsvorgang für Array
Interviewer fragen am häufigsten nach dieser Methode, da es viele Implementierungsmethoden gibt, die häufigste sind zwei for-Schleifen. Am bekanntesten ist die Verwendung eines Objekts a und dann eines for-Schleifenarrays arr. Jedes Mal, wenn (a[arr[i]]) existiert, wird es in Ihr neu definiertes Array-Ergebnis verschoben, wenn es nicht existiert . Die Existenz wird bewiesen und wiederholt, es besteht also keine Notwendigkeit, sie auf das Ergebnis zu drängen. In diesem Schema werden „123“ und 123 als gleich betrachtet. Tatsächlich ist das eine eine Zeichenfolge und das andere eine Zahl, daher sollten sie nicht als gleich betrachtet werden.
Die folgende Methode erscheint also: [1, „1“, „1“]
if ((typeof obj[array[i]]) != (typeof array[i]) || obj[array[i]] != array[i]) {
a.push(array[i]);
obj[array[i]] = array[i];
}
//Bestimmen Sie zunächst, ob die Typen gleich sind. Wenn sie gleich sind, speichern Sie sie. Wenn sie gleich sind, beweist dies, dass der Wert bereits vorhanden ist vor.
Wenn die Typen nicht identisch sind, gibt es zwei Situationen,
Im ersten Fall hat obj diese Daten bereits gespeichert, zum Beispiel: obj[123] = 123, jetzt array[i] = „123“, zu diesem Zeitpunkt ist der Typ von obj[array[i]]). eine Zahl und typeof array[i] ist eine Zeichenfolge, daher wird sie im Array gespeichert.
Die zweite Situation ist, dass obj diese Daten nicht gespeichert hat, zum Beispiel: array[i] = „123“, obj[“123“] = undefind, dann ist typeof obj[array[i]]) typeof undefined = undefiniert, ungleich typeof array[i], wird im Array gespeichert.
Diese Methode kann den Fall lösen, in dem Zeichenfolgen und Zahlen gleich sind, sie kann jedoch nicht den Fall lösen, in dem die Objekte gleich sind. Zum Beispiel: a = {1:2}, b ={2:1};
Beim ersten Durchlauf der Schleife ist typeof obj[a] = undefiniert, typeof a = Object. Speichern Sie obj[a] = a. Tatsächlich ist es obj[Object] = a;
In der zweiten Schleife ist typeof obj[b] gleich typeof obj[Object], was eigentlich typeof a = object, typeof b = object ist. Daher wird obj[array[i]] != array[ eingegeben. i]|, Das ist obj[b]->obj[Object]->a! = b, also Anzahlung
obj[b] = b; das heißt, obj[Object] = b; deckt das vorherige obj[Object] = a;
abIn diesem Fall wird für alle Objekte nur der letzte Objektwert gespeichert.
Wenn ich über Objekte nachdenke, verwende ich etwa Folgendes:
for(var i = 0; i for(var j = i 1; j If(temp[i] === temp[j]){
temp.splice(j, 1);
j--;
} }
}
Rücklauftemperatur;
6.min gibt den Mindestwert des Arrays zurück: return Math.min.apply(0,array);
7.unshift gibt die Array-Länge unter IE6 und 7 nicht zurück.
aus {
var _unshift = Array.prototype.unshift; //Funktionsentführung.
Array.prototype.unshift = function(){
_unshift.apply(this,arguments);
Gibt this.length;
zurück }
}
ein {
var _splice = Array.prototype.splice;
Array.prototype.splice = function(a){
if(arguments.length == 1) //Wenn es nur einen Parameter gibt
{
Geben Sie _splice.call(this,a,this.length);
zurück }sonst{
Geben Sie _splice.apply(this,arguments);
zurück }
}
}
Hier gibt es etwas zu beachten:
var color2 = color.splice(2,0,'brown','pink');
warning(color); // rot, blau, braun, rosa, gelb, schwarz, den Vorgang mit der gelben Option starten. Wenn die Löschung 0 ist, wird die hinzugefügte Option vor gelb eingefügt. Erinnern.
Schauen Sie sich hier bitte den Unterschied zwischen Splice und Slice, den Rückgabewert und die Auswirkungen auf das ursprüngliche Array an.
Das Obige ist eine komprimierte Version des Inhalts dieses Abschnitts, aber ich hoffe, dass er für alle hilfreich ist, wenn er diesen Abschnitt liest

JavaScript -Kerndatentypen sind in Browsern und Knoten.js konsistent, werden jedoch unterschiedlich als die zusätzlichen Typen behandelt. 1) Das globale Objekt ist ein Fenster im Browser und global in node.js. 2) Node.js 'eindeutiges Pufferobjekt, das zur Verarbeitung von Binärdaten verwendet wird. 3) Es gibt auch Unterschiede in der Leistung und Zeitverarbeitung, und der Code muss entsprechend der Umgebung angepasst werden.

JavaScriptUSESTWOTYPESOFCOMMENMENTEN: Einzelzeilen (//) und Multi-Linie (//). 1) Verwendung // Forquicknotesorsingle-Linexplanationen.2 Verwendung // ForlongerExPlanationsCompomentingingoutblocks-

Der Hauptunterschied zwischen Python und JavaScript sind die Typ -System- und Anwendungsszenarien. 1. Python verwendet dynamische Typen, die für wissenschaftliche Computer- und Datenanalysen geeignet sind. 2. JavaScript nimmt schwache Typen an und wird in Front-End- und Full-Stack-Entwicklung weit verbreitet. Die beiden haben ihre eigenen Vorteile bei der asynchronen Programmierung und Leistungsoptimierung und sollten bei der Auswahl gemäß den Projektanforderungen entschieden werden.

Ob die Auswahl von Python oder JavaScript vom Projekttyp abhängt: 1) Wählen Sie Python für Datenwissenschafts- und Automatisierungsaufgaben aus; 2) Wählen Sie JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung. Python ist für seine leistungsstarke Bibliothek in der Datenverarbeitung und -automatisierung bevorzugt, während JavaScript für seine Vorteile in Bezug auf Webinteraktion und Full-Stack-Entwicklung unverzichtbar ist.

Python und JavaScript haben jeweils ihre eigenen Vorteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1. Python ist leicht zu erlernen, mit prägnanter Syntax, die für Datenwissenschaft und Back-End-Entwicklung geeignet ist, aber eine langsame Ausführungsgeschwindigkeit hat. 2. JavaScript ist überall in der Front-End-Entwicklung und verfügt über starke asynchrone Programmierfunktionen. Node.js macht es für die Entwicklung der Vollstapel geeignet, die Syntax kann jedoch komplex und fehleranfällig sein.

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac
Visuelle Webentwicklungstools

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
