Problem bei Sortierung von Rechnungsnummern mit JavaScript

ab4582

Neues Mitglied
Hallo zusammen,

vorab: ich bin totaler Anfänger. Von daher habt bitte Verständnis, wenn meine Fragen etwas holprig rüber kommen :)

Hier meine Frage. Ich habe einen Java Code, der in einer Spalte "RG" in meiner Tabelle die Rechnungsnummern sortieren soll. Die Rechnungsnummern liegen alle im Format "RG-XXXXX" vor, wobei X für eine Zahl steht. Die Sortierung soll über einen Button ausgelöst werden und dann entweder aufsteigend oder absteigend erfolgen. Leider spuckt das Ergebnis ständig nur eine neue willkürliche Zusammenstellung von Sortierungen aus, die alles andere als den genannten Anforderungen entsprechen. Kann jemand anhand des Codes erkennen, wo hier mein Fehler liegt?

Vielen lieben Dank vorab!
Achim


Javascript:
 function sortTableByRG() {
  // Überprüfen, ob die Tabelle Datensätze enthält
  if (table.rows.length < 1) {
    alert('Die Tabelle enthält keine Datensätze zum Sortieren.');
    return;
  }

  // Zeile mit ID "rowPlaceholder" aus der Tabelle entfernen
  var rowPlaceholder = document.getElementById("rowPlaceholder");
  if (rowPlaceholder) {
    rowPlaceholder.parentNode.removeChild(rowPlaceholder);
  }

  // Weiter mit Sortiervorgang
  var rows = Array.from(table.rows).slice(1); // Nur Datenzeilen sortieren

  function compareRG(a, b) {
    // Extrahiere die Nummern aus RG-XXXXX
    var aNum = parseInt(a.cells[5].textContent.replace("RG-", ""));
    var bNum = parseInt(b.cells[5].textContent.replace("RG-", ""));
    
    // Vergleiche die extrahierten Nummern
    if (aNum < bNum) {
      return -1;
    } else if (aNum > bNum) {
      return 1;
    } else {
      return 0;
    }
  }
 
  var rows = Array.from(table.rows).slice(1);
  rows = mergeSort(rows, compareRG);
 

  var sortOrder = table.getAttribute("data-sort-order");
  if (sortOrder === "asc") {
    rows = mergeSort(rows, compareRG);
    table.setAttribute("data-sort-order", "desc");
  } else {
    rows = mergeSort(rows, compareRG);
    rows.reverse();
    table.setAttribute("data-sort-order", "asc");
  }

  // Füge die sortierten Zeilen zur Tabelle hinzu
  var newTbody = document.createElement('tbody');
  for (var i = 0; i < rows.length; i++) {
    newTbody.appendChild(rows[i]);
  }
  table.replaceChild(newTbody, table.tBodies[0]);

  // Füge Zeile mit ID "rowPlaceholder" wieder in Tabelle ein
  if (rowPlaceholder) {
    table.tBodies[0].appendChild(rowPlaceholder);
    rowPlaceholder.style.display = "none";
  }

  // Aktualisiere die Nummerierung der Zeilen
  updateRowNumbers();
}

function mergeSort(arr, compareFn) {
  if (arr.length <= 1) {
    return arr;
  }

  const middleIndex = Math.floor(arr.length / 2);
  const leftArr = arr.slice(0, middleIndex);
  const rightArr = arr.slice(middleIndex);

  const sortedLeft = mergeSort(leftArr, compareFn);
  const sortedRight = mergeSort(rightArr, compareFn);

  return merge(sortedLeft, sortedRight, compareFn);
}

function merge(leftArr, rightArr, compareFn) {
  let result = [];
  let leftIndex = 0;
  let rightIndex = 0;

  while (leftIndex < leftArr.length && rightIndex < rightArr.length) {
    if (compareFn(leftArr[leftIndex], rightArr[rightIndex]) < 0) {
      result.push(leftArr[leftIndex]);
      leftIndex++;
    } else {
      result.push(rightArr[rightIndex]);
      rightIndex++;
    }
  }

  return result.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex));
}
 

ab4582

Neues Mitglied
Hat sich bereits erledigt. Ich habe es selbst so gelöst:

Javascript:
// Funktion zum Sortieren nach Rechnungsnummer Neu
  function sortTableByRGNew() {
    var rows = Array.from(table.rows).slice(1);
    
    // Parse the RG value for each row and store it in a new property
    rows.forEach(function(row) {
    var rgString = row.cells[6].querySelector('input').value;
    var rgValue = parseInt(rgString.split('-')[1]);
    row.rgValue = rgValue;
    });
    
    // Determine the sort order based on the current state of the table
    var sortOrder = table.getAttribute("data-sort-order");
    if (sortOrder === "asc") {
    rows.sort(function(a, b) {
    return b.rgValue - a.rgValue;
    });
    table.setAttribute("data-sort-order", "desc");
    } else {
    rows.sort(function(a, b) {
    return a.rgValue - b.rgValue;
    });
    table.setAttribute("data-sort-order", "asc");
    }
    
    // Remove the existing rows from the table
    while (table.rows.length > 1) {
    table.deleteRow(1);
    }
    
    // Add the sorted rows back to the table
    rows.forEach(function(row) {
    table.appendChild(row);
    });
    
    // Update the row numbers
    updateRowNumbers();
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Javascript Problem bei mehrere ID's Angular, React, JQuery - Fragen zu JavaScript 7
S Wie kann das Problem mit der „CORS-Richtlinie“ gelöst werden, wenn Anfragen vom React-Front-End an das Node.js-Back-End gesendet werden? Angular, React, JQuery - Fragen zu JavaScript 1
pkm Problem mit Reaktivität bei einer Vue in Vue.js Angular, React, JQuery - Fragen zu JavaScript 0
krgewb Problem mit writeln Angular, React, JQuery - Fragen zu JavaScript 2
H Problem mit vom Server gelieferten Objekten Angular, React, JQuery - Fragen zu JavaScript 11
isaac77 Java Script implementierung Problem & Frage Angular, React, JQuery - Fragen zu JavaScript 0
N Problem - Google Analytics Tracking Javascript Datei von eigenen Server laden Angular, React, JQuery - Fragen zu JavaScript 1
H "form 1 in undefined" problem Angular, React, JQuery - Fragen zu JavaScript 2
C Problem beim Laden des Saalplans Angular, React, JQuery - Fragen zu JavaScript 5
4 Java Anfänger Problem Angular, React, JQuery - Fragen zu JavaScript 4
I iframe killer problem Angular, React, JQuery - Fragen zu JavaScript 3
J Problem:Zugriff auf Ausgabefeld (HTML-Formular)) Angular, React, JQuery - Fragen zu JavaScript 3
H problem mit IE Angular, React, JQuery - Fragen zu JavaScript 2
K Laufschrift Problem. Angular, React, JQuery - Fragen zu JavaScript 4
S Problem bei MSN Script Angular, React, JQuery - Fragen zu JavaScript 3
M Problem mit Java-Funktion Angular, React, JQuery - Fragen zu JavaScript 3
H Java Script Problem Angular, React, JQuery - Fragen zu JavaScript 11
F Ich habe ein Problem mit dem öffnen eines neuen Fensters Angular, React, JQuery - Fragen zu JavaScript 3
Developer_X Java Script, Problem beim staten Angular, React, JQuery - Fragen zu JavaScript 22
S Problem mit Formular ! Angular, React, JQuery - Fragen zu JavaScript 4
S Dringendes onclick Problem mit variable - Danke Angular, React, JQuery - Fragen zu JavaScript 2
D IE Problem Angular, React, JQuery - Fragen zu JavaScript 4
G Java Gallery mit reload ohne iframe Problem Angular, React, JQuery - Fragen zu JavaScript 6
J JS-Menü-Problem :-( Angular, React, JQuery - Fragen zu JavaScript 2
E Countdown Problem Angular, React, JQuery - Fragen zu JavaScript 5
T Problem mit getElementById Angular, React, JQuery - Fragen zu JavaScript 1
G Problem Bei Sound Angular, React, JQuery - Fragen zu JavaScript 4
S Ich hab da ein Problem mit einem JavaScript. Angular, React, JQuery - Fragen zu JavaScript 2
M Problem mit Vote Fenster Angular, React, JQuery - Fragen zu JavaScript 3
K Problem mit einbinden Angular, React, JQuery - Fragen zu JavaScript 2
M Problem mit Berechnungen Angular, React, JQuery - Fragen zu JavaScript 5
S Problem mit Aufruf einer *.js-Datei Angular, React, JQuery - Fragen zu JavaScript 2
N Problem mit onchange Listener Angular, React, JQuery - Fragen zu JavaScript 1
G Problem beim Einbinden von JAVA-Dropdown-Menu Angular, React, JQuery - Fragen zu JavaScript 7
G CSS-Problem mit "selected" Angular, React, JQuery - Fragen zu JavaScript 2
K Habe aber trotzdem ein Problem mit Javascript Angular, React, JQuery - Fragen zu JavaScript 2
F Problem mit random alerts Angular, React, JQuery - Fragen zu JavaScript 5
G utf8 problem wenn java deaktiviert ist Angular, React, JQuery - Fragen zu JavaScript 2
G Zeilenumbruch Problem Angular, React, JQuery - Fragen zu JavaScript 10
R Riesen Problem Angular, React, JQuery - Fragen zu JavaScript 2
Z Globale Veriable problem Angular, React, JQuery - Fragen zu JavaScript 2
P Problem mit Blog Angular, React, JQuery - Fragen zu JavaScript 3
G Problem mit Frames Angular, React, JQuery - Fragen zu JavaScript 9
S Problem mit Mozilla Angular, React, JQuery - Fragen zu JavaScript 9
N JS Problem mit Dia Show Angular, React, JQuery - Fragen zu JavaScript 5
H Problem mit Klappmenü. Angular, React, JQuery - Fragen zu JavaScript 2
A Problem mit checkdate-Funktion. Angular, React, JQuery - Fragen zu JavaScript 3
J Problem mit Java Menü Angular, React, JQuery - Fragen zu JavaScript 4
H [Problem] Tageszeitenabhängige Rotation von Flashfilmen Angular, React, JQuery - Fragen zu JavaScript 3
B document.forms problem Angular, React, JQuery - Fragen zu JavaScript 3
N tree_items problem Angular, React, JQuery - Fragen zu JavaScript 3
G 2 Frames mit einem Link verändern - Problem Angular, React, JQuery - Fragen zu JavaScript 4
F Problem mit "PHYSLET" Angular, React, JQuery - Fragen zu JavaScript 3
G Problem Angular, React, JQuery - Fragen zu JavaScript 2
M Merkwürdiges Problem Angular, React, JQuery - Fragen zu JavaScript 3
C Javascript problem links ohne funktion Angular, React, JQuery - Fragen zu JavaScript 12
W Problem bei Links Angular, React, JQuery - Fragen zu JavaScript 4
M Problem - java-script fehlt (???) Angular, React, JQuery - Fragen zu JavaScript 3
A problem mit pulldown Angular, React, JQuery - Fragen zu JavaScript 3
C Leerzeichen entfernen... Problem Javascript Angular, React, JQuery - Fragen zu JavaScript 1

Ähnliche Java Themen

Neue Themen


Oben