Я делаю таблицу реакции с сортируемыми колонками. Когда я сортирую возрастную строку, результат сортируется неправильно. Я пошел и проверил обратно, чтобы убедиться, что я сортировал правильно и добавил некоторые повторяющиеся числа к данным. Я также проверил наличие пробелов или ошибок в данных. Я также пытался убедиться, что они были числами, а не строками. Кажется, что-то не так с какими-либо «возрастными» свойствами. Так почему же сортировка в отношении 25 выше, чем 32?
Вот код (я обрезал повторяющиеся другие свойства, аннотированные ..., за исключением оператора распространения, который, конечно, является оператором распространения) :
function PeopleList({participants}){
const [reverse, setReverse] = useToggle(true);
let [sortType, setSort] = useState('default')
let reverseFunction = (arr) => {
if(reverse){
return arr.reverse()
} else {
return arr
}
}
let sortRows = {
...
age: {
class: 'age',
fn: (a, b) => a-b
},
default: {
class: 'default',
fn: (a, b)=>a
}
}
return (
<table>
<thead>
<tr>
...
<td><Button onClick={()=>{setSort('age'); setReverse()}}>
...
</tr>
</thead>
<tbody>
{reverseFunction([...list].sort(sortRows[sortType].fn)).map(person=>{
return <tr>
...
<td>{person.age}</td>
...
</tr>
)}
)}
А вот снимок экрана с полученной сортировкой: