Javascript: JSON-Daten werden nach einem bestimmten Feld sortiert

Methode

/*
 *  根据某个字段实现对json数组的排序
 * @param   array  要排序的json数组对象
 * @param   field  排序字段(此参数必须为字符串)
 * @param   reverse 是否倒序(默认为false)
 * @return  array  返回排序后的json数组
*/
function jsonSort(array, field, reverse) {
    // 数组长度小于2 或 没有指定排序字段 或 不是json格式数据
    if (array.length < 2 || !field || typeof array[0] !== "object") return array;
    // 数字类型排序
    if (typeof array[0][field] === "number") {
        array.sort(function (x, y) { return x[field] - y[field] });
    }
    // 字符串类型排序
    if (typeof array[0][field] === "string") {
        array.sort(function (x, y) { return x[field].localeCompare(y[field]) });
    }
    // 判断是否需要倒序
    if (reverse) {
        array.reverse();
    }
    return array;
}

Wissenspunkte

localeCompare()

  • Definition und Verwendung
    Vergleicht zwei Zeichenfolgen in einer gebietsschemaspezifischen Reihenfolge.

  • Grammatik
    stringObject.localeCompare(target)

  • Parameter

  • Rückgabewert
    Eine Zahl, die das Ergebnis des Vergleichs angibt. localeCompare() gibt eine Zahl kleiner als 0 zurück, wenn stringObject kleiner als das Ziel ist. Die Methode gibt eine Zahl größer als 0 zurück, wenn stringObject größer als target ist. Diese Methode gibt 0 zurück, wenn die beiden Zeichenfolgen gleich oder gemäß der lokalen Sortierung nicht unterscheidbar sind.

    Hinweise
    Wenn die Operatoren < und > auf Zeichenfolgen angewendet werden, vergleichen sie Zeichenfolgen nur unter Verwendung der Unicode-Codierung der Zeichen, unabhängig von der lokalen Sortierung. Die so generierte Reihenfolge ist nicht unbedingt korrekt. Beispielsweise wird im Spanischen das Zeichen „ch“ normalerweise als Zeichen angeordnet, das zwischen den Buchstaben „c“ und „d“ steht.

    Die Methode localeCompare() bietet eine Möglichkeit zum Vergleichen von Zeichenfolgen unter Berücksichtigung der standardmäßigen lokalen Sortierung. Der ECMAscript-Standard legt nicht fest, wie gebietsschemaspezifische Vergleichsvorgänge durchgeführt werden, sondern legt lediglich fest, dass die Funktion die vom zugrunde liegenden Betriebssystem bereitgestellte Sortierung verwendet.

  • Sortieren()

  • Definition und Verwendung
    Die Methode sort() wird zum Sortieren der Elemente eines Arrays verwendet.

  • Grammatik
    arrayObject.sort(sortby)

  • Parameter

Parameter beschreiben
Sortieren nach Optional. Gibt die Sortierreihenfolge an. Muss eine Funktion sein.

  • Rückgabewert
  • Ein Verweis auf das Array. Beachten Sie, dass das Array nach dem Original-Array sortiert wird und keine Kopie erstellt wird.
  • veranschaulichen

       Wenn diese Methode ohne Parameter aufgerufen wird, werden die Elemente im Array alphabetisch, genauer gesagt in der Reihenfolge der Zeichenkodierung, sortiert. Dazu sollten die Elemente des Arrays zunächst zum Vergleich in Strings umgewandelt werden (falls erforderlich).

       Wenn Sie nach anderen Kriterien sortieren möchten, müssen Sie eine Vergleichsfunktion bereitstellen, die zwei Werte vergleicht und eine Zahl zurückgibt, die die relative Reihenfolge der beiden Werte beschreibt. Die Vergleichsfunktion sollte zwei Parameter a und b haben und ihr Rückgabewert ist wie folgt:

  • Gibt einen Wert kleiner als 0 zurück, wenn a kleiner als b ist und a vor b im sortierten Array erscheinen sollte.
  • Gibt 0 zurück, wenn a gleich b ist.
  • Gibt einen Wert größer als 0 zurück, wenn a größer als b ist.

umkehren()

  • Definition und Verwendung
    Die Methode reverse() wird verwendet, um die Reihenfolge der Elemente in einem Array umzukehren.

  • Grammatik
    arrayObject.reverse()

  • Tipps und Hinweise
    Hinweis: Diese Methode verändert das ursprüngliche Array und erstellt kein neues Array.

Beispiel

Ausgangsdaten

 nach dem Sortieren

 

 

 

Ich denke du magst

Origin blog.csdn.net/weixin_50114203/article/details/125641333
Empfohlen
Rangfolge