while (true) { let texts = await page.evaluate(() => { let data = []; let elements = document.getElementsByClassName("my-2 card__price tw-truncate"); for (var element of elements) { var floor = Number(element.textContent.split("SOL")[0]) data.push(floor) } return data.sort() }); floorpricearray = texts if (texts !== undefined) { console.log(floorpricearray) } }La salida
[ 10, 11, 5.3, 5.3, 5.38, 5.4, 5.4, 5.4321, 5.4321, 5.5, 5.6942, 5.8, 5.95, 6.2, 7, 7.95, 7.99, 8.05, 8.3, 9 ]Debe darle al método .sort nativo una función de comparación como esa, de lo contrario, los valores se convertirán en cadenas y luego se ordenarán por el valor de los caracteres ASCII.
data.sort((a, b) => { return a - b; });Puedes probar esto
var a = [10, 11, 5.3, 5.3, 5.38, 5.4, 5.4, 5.4321, 5.4321, 5.5, 5.6942, 5.8, 5.95, 6.2, 7, 7.95, 7.99, 8.05, 8.3, 9 ]; a.sort(function(a, b) { return a - b; }); alert(a);Está ordenando la matriz considerando los elementos de la matriz como una cadena. Para ordenarlo de menor a mayor, debe ser un número.