Liste sortieren

  • JavaScript

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Liste sortieren

    Guten Abend
    Ich bin seit einiger zeit auf der suche nach eine Tool der mir eine liste sortiert
    Habe ein iobroker also smart home Steuerung auf meinem pi installiert
    und wurde gerne eine led farbe ändern
    das Problem ist das die led nur gewisse Farben zulässt.
    jedoch kann ich über den Color Picker nur alle Farben auswähle.
    also die led akzeptiert nur die Farben aus dieser liste

    XML-Quellcode

    1. "0": "Black (#ffffff)",
    2. "1": "Brown (#ff3d3e)",
    3. "2": "Yellow (#ffff00)",
    4. "3": "Blanched Almond (#ffeacc)",
    5. "4": "Light Sky Blue (#8ad2ff)",
    6. "5": "White (#ffffff)",
    7. "6": "Pale Turquoise (#bcffff)",
    8. "7": "Dim Gray (#ffffff)",
    9. "8": "Alice Blue (#eff7ff)",
    10. "9": "Chartreuse (#7fff00)",
    11. "10": "Moccasin (#ffe1b5)",
    12. "11": "Medium Spring Green (#1aff9d)",
    13. "12": "Peach Puff (#ffd8ba)",
    14. "13": "Orange Red (#ff4400)",
    15. "14": "Gold (#ffd400)",
    16. "15": "Bisque (#ffe2c4)",
    17. "16": "Teal (#34feff)",
    18. "17": "Khaki (#fff495)",
    19. "18": "Forest Green (#3cff3c)",
    20. "19": "Lime (#c7ff1e)",
    21. "20": "Honeydew (#efffef)",
    22. "21": "Pale Goldenrod (#fffab7)",
    23. "22": "Light Gray (#ffffff)",
    24. "23": "Green (#00ff00)",
    25. "24": "Crimson (#ff2545)",
    26. "25": "Green Yellow (#afff2d)",
    27. "26": "Sandy Brown (#ffaa64)",
    28. "27": "Old Lace (#fff7e8)",
    29. "28": "Gray (#ffffff)",
    30. "29": "Antique White (#fff0db)",
    31. "30": "Dark Orange (#ff8a25)",
    32. "31": "Pink (#ffbfcc)",
    33. "32": "Dark Goldenrod (#ffbb0e)",
    34. "33": "Slate Gray (#c9e4ff)",
    35. "34": "Linen (#fff5eb)",
    36. "35": "Dark Olive Green (#a1ff6e)",
    37. "36": "Light Yellow (#ffffe0)",
    38. "37": "Tomato (#ff6347)",
    39. "38": "Turquoise (#48ffed)",
    40. "39": "Web Green (#00ff3d)",
    41. "40": "Rosy Brown (#ffc1c1)",
    42. "41": "Medium Slate Blue (#8370ff)",
    43. "42": "Dark Cyan (#00ffff)",
    44. "43": "Medium Sea Green (#57ffa0)",
    45. "44": "Medium Orchid (#e066ff)",
    46. "45": "Deep Pink (#ff1491)",
    47. "46": "Azure (#efffff)",
    48. "47": "Thistle (#ffe2ff)",
    49. "48": "Navajo White (#ffddad)",
    50. "49": "Dark Slate Gray (#91ffff)",
    51. "50": "Light Steel Blue (#cae2ff)",
    52. "51": "Fuchsia (#ff00ff)",
    53. "52": "White Smoke (#ffffff)",
    54. "53": "Lavender (#9f7fff)",
    55. "54": "Ghost White (#f7f7ff)",
    56. "55": "Blue Violet (#9b30ff)",
    57. "56": "Cornsilk (#fff7db)",
    58. "57": "Gainsboro (#ffffff)",
    59. "58": "Lavender Blush (#ffeff4)",
    60. "59": "Light Sea Green (#2ffff5)",
    61. "60": "Indian Red (#ff7272)",
    62. "61": "Steel Blue (#60b7ff)",
    63. "62": "Medium Turquoise (#57fff9)",
    64. "63": "Spring Green (#00ff7f)",
    65. "64": "Orchid (#ff84fd)",
    66. "65": "Violet (#ff8bff)",
    67. "66": "Misty Rose (#ffe2e0)",
    68. "67": "Salmon (#ffa07a)",
    69. "68": "Web Gray (#ffffff)",
    70. "69": "Beige (#ffffe5)",
    71. "70": "Red (#ff0000)",
    72. "71": "Olive (#fffc4b)",
    73. "72": "Midnight Blue (#3939ff)",
    74. "73": "Pale Violet Red (#ff82ac)",
    75. "74": "Magenta (#ff00ff)",
    76. "75": "Light Blue (#c1f0ff)",
    77. "76": "Slate Blue (#856fff)",
    78. "77": "Ivory (#ffffef)",
    79. "78": "Purple (#ab24ff)",
    80. "79": "Web Purple (#ff00ff)",
    81. "80": "Light Coral (#ff8888)",
    82. "81": "Lawn Green (#79ff41)",
    83. "82": "Medium Aquamarine (#7fffd5)",
    84. "83": "Web Maroon (#ff0000)",
    85. "84": "Powder Blue (#c3f9ff)",
    86. "85": "Sea Green (#52ff9d)",
    87. "86": "Cadet Blue (#96fbff)",
    88. "87": "Chocolate (#ff8025)",
    89. "88": "Sky Blue (#93e0ff)",
    90. "89": "Light Salmon (#ffa07a)",
    91. "90": "Olive Drab (#bfff3f)",
    92. "91": "Aqua (#34feff)",
    93. "92": "Light Green (#99ff99)",
    94. "93": "Plum (#ffb9ff)",
    95. "94": "Snow (#fff9f9)",
    96. "95": "Aquamarine (#7fffd2)",
    97. "96": "Orange (#ffa600)",
    98. "97": "Seashell (#fff4ed)",
    99. "98": "Deep Sky Blue (#38bdff)",
    100. "99": "Lemon Chiffon (#fff9cc)",
    101. "100": "Cyan (#00ffff)",
    102. "101": "Medium Purple (#ac82ff)",
    103. "102": "Maroon (#ff468d)",
    104. "103": "Tan (#ffddab)",
    105. "104": "Dark Khaki (#fff891)",
    106. "105": "Lime Green (#40ff40)",
    107. "106": "Light Slate Gray (#c6e1ff)",
    108. "107": "Goldenrod (#ffc227)",
    109. "108": "Dark Sea Green (#c1ffc1)",
    110. "109": "Wheat (#ffe7ba)",
    111. "110": "Hot Pink (#ff68b6)",
    112. "111": "Coral (#ff7e4f)",
    113. "112": "Dark Slate Blue (#826fff)",
    114. "113": "Peru (#ffa44f)",
    115. "114": "Indigo (#9000ff)",
    116. "115": "Burlywood (#ffd29c)",
    117. "116": "Blue (#4100ff)",
    118. "117": "Dark Green (#00ff00)",
    119. "118": "Royal Blue (#4876ff)",
    120. "119": "Light Cyan (#e0ffff)",
    121. "120": "Dark Salmon (#ffa486)",
    122. "121": "Medium Violet Red (#ff1aab)",
    123. "122": "Dark Orchid (#bf40ff)",
    124. "123": "Silver (#ffffff)",
    125. "124": "Saddle Brown (#ff7c1f)",
    126. "125": "Dark Blue (#0000ff)",
    127. "126": "Dark Magenta (#ff00ff)",
    128. "127": "Dark Red (#ff0000)",
    129. "128": "Mint Cream (#f4fff9)",
    130. "129": "Dodgerblue (#1e8fff)",
    131. "130": "Papaya Whip (#ffefd6)",
    132. "131": "Dark Gray (#ffffff)",
    133. "132": "Light Pink (#ffb5c1)",
    134. "133": "Pale Green (#9dff9d)",
    135. "134": "Yellow Green (#bfff46)",
    136. "135": "Floral White (#fff9ef)",
    137. "136": "Sienna (#ff8248)",
    138. "137": "Light Goldenrod (#ffffd6)",
    139. "138": "Rebecca Purple (#aa55ff)",
    140. "139": "Navy Blue (#0000ff)",
    141. "140": "Firebrick (#ff2f2f)",
    142. "141": "Dark Violet (#b300ff)",
    143. "142": "Dark Turquoise (#01fbff)",
    144. "143": "Cornflower (#6b9eff)",
    145. "144": "Medium Blue (#0000ff)"


    nun zu meiner frage
    gibt es eine Möglichkeit diese liste neu zu sortieren unzwar nach Farbe der hex Codes und dann die nummern dementsprechend von eins bis 144 neu einzutragen
    den die Farben hier in der liste sind wild durcheinander.
    denn wenn ich einen Slider zu Bestimmung der Farbe einsetze und der mit zahlen von ein bis 144 auswählt habe ich keinen Farben verlauf

    ich hoffe ich konnte mein Problem einigermaßen erklären

    marbari schrieb:

    denn wenn ich einen Slider zu Bestimmung der Farbe einsetze und der mit zahlen von ein bis 144 auswählt habe ich keinen Farben verlauf
    Hmm - das wird ziemlich schwierig.
    Was das menschliche Auge als Farbverlauf empfindet - ich hab mich damit beschäftigt, und fand keinen überzeugenden Zusammenhang.
    Heute würde ich so konzipieren: Man muss sich die Farben in einem 3-dimensionalen Farbraum vorstellen. Wenn du nun einen Haufen diskreter Farbwerte hast, musst du die 3-D - Farbpunkte den in diesem Farbraum lokalisieruen.
    Und dann einen Algo schreiben, der eine möglichst sinnvolle Kurve durch diese im Farbraum verteilten Punkte zieht.
    Wie gesagt: nur Ansatz - tatsächlich wird das menschlihe Auge nichtmal so eine extrem anspruchsvollen Heuristik als perfekt empfinden.

    Mein Tipp: guck die Farben an und sortiere sie händisch in eine Reihenfolge, die dir gefällt.
    Das wird von allen Lösungen die schnellste sein, und wahrscheinlich sogar die beste.

    ErfinderDesRades schrieb:

    Was das menschliche Auge als Farbverlauf empfindet
    @marbari
    Hier ist eine RGB-Farb-Kennlinie, die die Empfindlichkeit einer Farbkamera beschreibt:

    Du bekommst zu jeder Wellenlänge eine Intensität für jeden der Kanäle R,G,B.
    Die müssen normiert werden (z.B. Maximum auf 255). ACHTUNG Dein Schwarz ist FFFFFF, der selbe Wert wie Weiß!
    Dann suchst Du Dir für jeden Deiner Werte den am dichtesten liegenden Tabellenwert raus und kannst eine Reihenfolge per Wellenlänge festlegen.
    Ich werd morgan mal probieren, das zu machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB1963 schrieb:

    Alle Grauabstufungen von Weiß bis Schwarz haben #ffffff ?
    Ich denke, dass ist dies:

    RodFromGermany schrieb:

    Die müssen normiert werden (z.B. Maximum auf 255)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich kenn mich zwar mit javascript nicht so aus, daher habe ich mich dem google bemüht.
    Javascript bietet wie ich sehen kann, alles um die obere Liste umzugestalten.

    Mit substring kann man den hex-code extrahieren.
    Wenn das geschafft ist, alles wieder in eine Array bzw. ListeOfT
    dann mit sort sortieren.

    developer.mozilla.org/de/docs/…_Objects/String/substring
    developer.mozilla.org/de/docs/…Global_Objects/Array/sort
    Wenn ich die Farbcodes mit hier vergleiche, fällt mir auf, dass eigentlich keiner so hundertprozentig stimmt.
    Ich habe das Gefühl, dass da so eine Art RGBW dargestellt werden soll, aber der Weiß-Anteil nicht gelistet ist.
    Oder irgendwas in der Art.
    Ist jedenfalls kein echtes RGB.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @marbari absolut ohne Gewähr, .... zu spät und nur schnell vor dem zu Bett gehen zusammen getackert!

    Das da in deiner List sowas steht erschließt sich mir gerade nicht
    "0": "Black (#ffffff)",
    ...
    "5": "White (#ffffff)",


    Sortierte Werte:
    Spoiler anzeigen
    FF
    FF
    FF
    FF00
    FF00
    FF3D
    FF7F
    FFFF
    FFFF
    1FBFF
    1AFF9D
    1E8FFF
    2FFFF5
    34FEFF
    34FEFF
    38BDFF
    3939FF
    3CFF3C
    40FF40
    4100FF
    4876FF
    48FFED
    52FF9D
    57FFA0
    57FFF9
    60B7FF
    6B9EFF
    79FF41
    7FFF00
    7FFFD2
    7FFFD5
    826FFF
    8370FF
    856FFF
    8AD2FF
    9000FF
    91FFFF
    93E0FF
    96FBFF
    99FF99
    9B30FF
    9DFF9D
    9F7FFF
    A1FF6E
    AA55FF
    AB24FF
    AC82FF
    AFFF2D
    B300FF
    BCFFFF
    BF40FF
    BFFF3F
    BFFF46
    C1F0FF
    C1FFC1
    C3F9FF
    C6E1FF
    C7FF1E
    C9E4FF
    CAE2FF
    E066FF
    E0FFFF
    EFF7FF
    EFFFEF
    EFFFFF
    F4FFF9
    F7F7FF
    FF0000
    FF0000
    FF0000
    FF00FF
    FF00FF
    FF00FF
    FF00FF
    FF1491
    FF1AAB
    FF2545
    FF2F2F
    FF3D3E
    FF4400
    FF468D
    FF6347
    FF68B6
    FF7272
    FF7C1F
    FF7E4F
    FF8025
    FF8248
    FF82AC
    FF84FD
    FF8888
    FF8A25
    FF8BFF
    FFA07A
    FFA07A
    FFA44F
    FFA486
    FFA600
    FFAA64
    FFB5C1
    FFB9FF
    FFBB0E
    FFBFCC
    FFC1C1
    FFC227
    FFD29C
    FFD400
    FFD8BA
    FFDDAB
    FFDDAD
    FFE1B5
    FFE2C4
    FFE2E0
    FFE2FF
    FFE7BA
    FFEACC
    FFEFD6
    FFEFF4
    FFF0DB
    FFF495
    FFF4ED
    FFF5EB
    FFF7DB
    FFF7E8
    FFF891
    FFF9CC
    FFF9EF
    FFF9F9
    FFFAB7
    FFFC4B
    FFFF00
    FFFFD6
    FFFFE0
    FFFFE5
    FFFFEF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF
    FFFFFF


    Mit folgendem Code generiert (WPF Projekt in C# 1xRichTextbox):
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. using System.IO;
    11. using System.Text.RegularExpressions;
    12. namespace WF_SortColorTxtFile
    13. {
    14. public partial class Form1 : Form
    15. {
    16. List<string> LstColors = new List<string>();
    17. List<int> LstIntColors = new List<int>();
    18. public Form1()
    19. {
    20. InitializeComponent();
    21. var allTxtLines = File.ReadAllLines("Color.txt");
    22. foreach (var l in allTxtLines)
    23. {
    24. //Thema Regex: Get alles zwischen den inkl. Klammern (#00fff)
    25. var temp1 = Regex.Match(l, @"\((.*?)\)").Value;
    26. // lösch die Klammern und # -> 00fff
    27. var temp2 = Regex.Replace(temp1, @"[\(\)#]","");
    28. LstColors.Add(temp2);
    29. }
    30. //konvertiere die Hexzahlen in Integer
    31. for (int i = 0; i < LstColors.Count; i++)
    32. {
    33. LstIntColors.Add(int.Parse(LstColors[i], System.Globalization.NumberStyles.HexNumber));
    34. }
    35. //sortiere die Zahlen
    36. LstIntColors.Sort();
    37. LstColors.Clear();
    38. //zurück zu HexValues
    39. for (int i = 0; i < LstIntColors.Count; i++)
    40. {
    41. LstColors.Add(LstIntColors[i].ToString("X"));
    42. }
    43. foreach (var i in LstColors)
    44. {
    45. RtxtbxShow.Text += $"{i} \n";
    46. }
    47. }
    48. }
    49. }
    codewars.com Rank: 4 kyu
    @marbari Wie oft muss denn diese Liste sortiert werden?
    Ich gehe mal davon aus, dass es nur ein Mal sein muss.
    Du kannst diese Liste im Notepad++ bearbeiten und in Excel sortieren.
    Dann dann zurück auf den Pi und feddich. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!