Als ich ein WeChat-Applet-Projekt schrieb, gab es darin eine Funktion zur „Städteauswahl“. Der Autor verwendete die Komponente Da ich die Konvertierung des JS-Variablentyps damals nicht verstand, schrieb ich einige Urteilszeilen in den Code: (Dies ist streng) let val_one=Typ von this.data.pIndex=="Nummer"?[this.daya.pIndex]:this.data.pIndex (: Die Zugriffselemente im Projekt sind dynamisch! Der Grund hierfür ist, dass der Index der Auswahl des Benutzers dynamisch folgen und zur Anzeige an Aber vorher müssen wir eine Entscheidung treffen – da es sich bei einigen Gebieten um Provinzstädte oder -gemeinden handelt, müssen wir Benutzer vor „dummen Aktionen“ wie plötzlichem Anfahren oder Abfahren schützen. Zu diesem Zeitpunkt meldet das WeChat-Applet einen Fehler, dass die entsprechenden Daten nicht gefunden werden können: let Länge = placeArray[val_one].sub.length wenn(Wert[0]>=Länge){ val=[Länge-1] }sonst wenn(Wert[0]<0){ Wert=[0] } Als ich später zurückging, um den Code für dieses Projekt zu optimieren, stellte ich fest, dass dies (das Konvertieren von Arrays in Zahlen beim Erzwingen und das Konvertieren von Zahlen in Arrays beim Geben von Feedback) eigentlich unnötig war: JavaScript scheint eine eigene "einzigartige" Methode zur Datenverarbeitung zu haben, aber der Autor hat noch keine relevanten Informationen gefunden ~~ So ermitteln Sie, ob ein Wert als Array-Index verwendet werden kann Eines ist jedoch sicher: Die Zuweisung von Werten zu ganzzahligen Eigenschaftsschlüsseln ist ein Sonderfall von Arrays, da sie anders behandelt werden als nicht ganzzahlige Schlüssel. Um festzustellen, ob eine Eigenschaft als Array-Index verwendet werden kann, hat der Autor eine Passage im ES6-Spezifikationsdokument gefunden:
Dieser Vorgang kann mit JS wie folgt implementiert werden: Funktion toUint32(Wert){ returniere Math.floor(Math.abs(Zahl(Wert))) % Math.pow(2,32); } Funktion isArrayIndex(Schlüssel){ let numericKey = toUint32(Schlüssel); return String(numerischerSchlüssel) == Schlüssel && numerischerSchlüssel < (Math.pow(2,32)-1); } Die Funktion Mit dieser Grundlage können wir das Verhalten von Funktion createArray(Länge=0){ gib einen neuen Proxy zurück ({Länge},{ setze(TrapZiel,Schlüssel,Wert){ let currentLength=Reflect.get(trapTarget,"Länge"); wenn(istArrayIndex(Schlüssel)){ let numericKey = Nummer(Schlüssel); wenn(numerischerSchlüssel >= aktuelleLänge){ Reflect.set(trapTarget,"Länge",numerischerSchlüssel+1); } }sonst wenn(Schlüssel === "Länge"){ wenn(Wert < aktuelleLänge){ für(let index=currentLength-1;index>=value;index--){ Reflect.deleteProperty(trapTarget,index); } } } // Unabhängig vom Typ des Schlüssels muss dieser Code ausgeführt werden return Reflect.set(trapTarget,key,value); } }); } Experimentieren Sie damit: Zusammenfassen Dies ist das Ende dieses Artikels mit der detaillierten Erklärung von Datentypproblemen bei der JS-Array-Indexerkennung. Weitere Informationen zu Datentypen bei der JS-Array-Indexerkennung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung von 11 erstaunlichen Best Practices für die Refaktorierung von JavaScript-Code
>>: So verwenden Sie die Lotteriekomponente des WeChat Mini-Programms
Der Wert der Hintergrundeigenschaft in CSS Hinter...
1. Gehen Sie zur offiziellen Website von Vim, um ...
Fügen Sie der Seite einen DOCTYPE hinzu Da versch...
Beim Starten von MySQL in einer OS X-Umgebung wir...
1. Laut dem Online-Tutorial schlägt die Installat...
Dieser Artikel stellt hauptsächlich die Wirkung d...
Aus Langeweile habe ich ein paar einfache Übungen...
Obwohl die papierlose Welt noch nicht angebrochen...
In diesem Artikel erfahren Sie, wie Sie mit Vue e...
Laden Sie die Windows-Version von Nginx von der o...
Inhaltsverzeichnis Einführung in utf8mb4 Fehler b...
Bei Webdiensten geht es um die Kommunikation zwis...
In der folgenden Analyse geht es um Produktdesign...
Inhaltsverzeichnis Normale Belastung Lazy Loading...
1. Funktion : Ermöglicht der übergeordneten Kompo...