Heim > Web-Frontend > js-Tutorial > Dekodierung der JavaScript-Emoji-Sortierung mit der Fitzpatrick-Skala

Dekodierung der JavaScript-Emoji-Sortierung mit der Fitzpatrick-Skala

Susan Sarandon
Freigeben: 2025-01-03 21:30:44
Original
975 Leute haben es durchsucht

Decoding JavaScript Emoji Sorting with the Fitzpatrick Scale

Wenn wir an das Sortieren von Arrays in JavaScript denken, stellen wir uns normalerweise Zeichenfolgen, Zahlen oder sogar Objekte vor, die in aufsteigender oder absteigender Reihenfolge organisiert sind. Aber was passiert, wenn die Elemente des Arrays Emojis sind? Die Antwort könnte Sie überraschen, insbesondere wenn Hauttonmodifikatoren ins Spiel kommen!

In diesem Blog befassen wir uns damit, wie JavaScript das Sortieren von Emojis handhabt, erkunden die Fitzpatrick-Skala, die dieses Verhalten beeinflusst, und stellen nebenbei einige skurrile Beispiele vor.


Das Beispiel

Beginnen wir mit dem Codeausschnitt aus dem Screenshot:

["??", "??", "??", "??", "??"].sort();
Nach dem Login kopieren
Nach dem Login kopieren

Bei der Ausführung erzeugt dieser Code die folgende Ausgabe:

["??", "??", "??", "??", "??"]
Nach dem Login kopieren
Nach dem Login kopieren

Auf den ersten Blick fragen Sie sich vielleicht: Was ist gerade passiert? Die Emojis wurden in der Reihenfolge „von hell nach dunkel“ sortiert. Um zu verstehen, warum dies geschieht, müssen wir einen Blick unter die Haube von JavaScript und Unicode werfen.


Was passiert wirklich?

1. Wie Emojis funktionieren

Jedes Emoji wird durch einen eindeutigen Unicode-Codepunkt dargestellt. Zum Beispiel:

  • ? wird durch U 1F469 dargestellt.
  • ? (ein Hauttonmodifikator) wird durch U 1F3FF dargestellt.

Wenn ein Emoji wie „??“ angezeigt wird, handelt es sich tatsächlich um eine Kombination aus zwei Unicode-Zeichen:

  • Das Basis-Emoji (?).
  • Ein Hauttonmodifikator (?).

2. Sortieren in JavaScript

Die Methode .sort() in JavaScript vergleicht die Unicode-Werte von Array-Elementen und behandelt sie standardmäßig als Zeichenfolgen. Das bedeutet, dass die Sortierreihenfolge von Emojis durch ihre zugrunde liegenden Unicode-Werte bestimmt wird.

3. Fitzpatrick-Skala

Die Fitzpatrick-Skala ist ein Klassifizierungssystem für menschliche Hauttöne, das von Typ I (am hellsten) bis Typ VI (am dunkelsten) reicht. Unicode hat diese Skala übernommen, um die Hauttonvielfalt in Emojis einzuführen. So entsprechen die Modifikatoren der Fitzpatrick-Skala:

  • ? (Typ I): Licht
  • ? (Typ II): Leicht-Mittel
  • ? (Typ III): Mittel
  • ? (Typ IV): Mittel-Dunkel
  • ? (Typ V): Dunkel

Beim Sortieren von Emojis mit diesen Modifikatoren ordnet JavaScript sie im Wesentlichen basierend auf dem numerischen Wert der Hauttonmodifikatoren, der der Fitzpatrick-Skala entspricht.


Sehen wir uns das in Aktion an

Hier ist eine praktische Demonstration:

["??", "??", "??", "??", "??"].sort();
Nach dem Login kopieren
Nach dem Login kopieren

Aufschlüsselung

  • Die .sort()-Methode vergleicht die Unicode-Werte jedes Emojis.
  • Die Hauttonmodifikatoren (?, ? usw.) haben steigende Unicode-Werte.
  • Dies führt dazu, dass die Emojis vom hellsten (?) zum dunkelsten (?) sortiert werden.

Lustige Experimente

Lassen Sie uns ein paar Variationen ausprobieren und die Ergebnisse beobachten.

1. Gemischte Emojis

Was passiert, wenn wir Basis-Emojis ohne Hauttonmodifikatoren einbinden?

["??", "??", "??", "??", "??"]
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

// Array of emojis with skin-tone modifiers
const emojis = ["??", "??", "??", "??", "??"];

// Sort the array
const sortedEmojis = emojis.sort();

// Log the sorted array
console.log(sortedEmojis); 
// Output: ["??", "??", "??", "??", "??"]
Nach dem Login kopieren

Hier das Basis-Emoji? steht an erster Stelle, da es den kleinsten Unicode-Wert hat, gefolgt von den sortierten Hauttonvarianten.


2. Andere Emoji-Gruppen sortieren

Was wäre, wenn wir andere Emoji-Gruppen mit Modifikatoren, wie Handgesten, sortieren würden?

const mixedEmojis = ["??", "??", "?", "??", "??", "??"];
console.log(mixedEmojis.sort());
Nach dem Login kopieren

Ausgabe:

["?", "??", "??", "??", "??", "??"]
Nach dem Login kopieren

Auch hier sind die Emojis nach der Fitzpatrick-Skala sortiert.


Unicode hinter den Kulissen

Um das Sortierverhalten besser zu verstehen, untersuchen wir die Unicode-Werte jedes Emojis:

const handEmojis = ["??", "??", "??", "??", "??"];
console.log(handEmojis.sort());
Nach dem Login kopieren

Dadurch werden die Unicode-Werte des Basis-Emojis und seiner Modifikatoren protokolliert. Sie werden den schrittweisen Anstieg der Werte für die Hauttonmodifikatoren bemerken.


Weiterführende Literatur

  • Technischer Unicode-Standard Nr. 51
  • MDN: Array.prototype.sort()

Das obige ist der detaillierte Inhalt vonDekodierung der JavaScript-Emoji-Sortierung mit der Fitzpatrick-Skala. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage