Tuve un problema cuando intenté ordenar el título alfabéticamente en mi pequeño proyecto. Hay una variable "sortedRows", que almacena las filas ordenadas después de usar la función "ordenar". La página web se muestra a continuación.
function sortTitle(){ const rows = Array.from(document.querySelectorAll(".tbody")); # get the table rows const sortedRows = rows.sort((a, b) => { const aText = a.querySelectorAll("td")[1]; const bText = b.querySelectorAll("td")[1]; if(aText.textContent > bText.textContent){ return -1; } if(aText.textContent.toLowerCase() < bText.textContent.toLowerCase()){ return 1; } return 0; }) const newRows = document.getElementsByClassName("tbody"); for (let i = 0; i < rows.length; i++){ console.log(sortedRows[i].innerHTML); # I tried to replace the rows with sortedrows, but here is an error. The test1 and dwc did not swap newRows[i].innerHTML = sortedRows[i].innerHTML; } };Antes del bucle for en el código chuck, encontré que sortedRows[0] es dwc y sortedRows 1 es test1, sin embargo, después del bucle for, tanto sortedRows[0] como sortedRows 1 son dwc. No estoy seguro de lo que sucedió cuando intenté "newRows[i].innerHTML = sortedRows[i].innerHTML;". Agradeceré si alguien puede ayudarme a encontrar el problema.
No tengo la capacidad de probar su código, pero puedo sugerir que en lugar de intentar reemplazar los elementos de newRows dentro del bucle for, puede usar algo como esto:
newRows = [...sortedRows];En JS esto se llama operador de propagación. Usarlo así con una matriz de una dimensión es beneficioso para hacer una copia superficial. En pocas palabras, con esto puede clonar todo el contenido de sortedRows en filas nuevas. Puede encontrar interesante este artículo de FreeCodeCamp: .