this is my app.js The app.js file render the Leaderboard component for each route like /rank,/point,/age,/name
<Router>
<Switch>
<Route path="/">
<div className="App">
<h8k-navbar header={title}></h8k-navbar>
<LeaderBoard />
</div>
</Route>
<Route path="/name">
<div className="App">
<h8k-navbar header={title}></h8k-navbar>
<LeaderBoard />
</div>
</Route>
<Route path="/rank">
<div className="App">
<h8k-navbar header={title}></h8k-navbar>
<LeaderBoard sorted = {lists}/>
</div>
</Route>
<Route path="/age">
<div className="App">
<h8k-navbar header={title}></h8k-navbar>
<LeaderBoard />
</div>
</Route>
<Route path="/points">
<div className="App">
<h8k-navbar header={title}></h8k-navbar>
<LeaderBoard />
</div>
</Route>
</Switch>
</Router>
this is my json: here is my data contain rank,point,name,age. I want this detail should be sorted by rank,point,name,age .that is when the route is /rank The table data in Leaderboard should be sorted by rank and render that
{"list":[
{
"rank":"1",
"points":"1025",
"name":"John Doe",
"age":"27"
},
{
"rank":"3",
"points":"245",
"name":"Elizabeth",
"age":"17"
},
{
"rank":"2",
"points":"566",
"name":"Samantha",
"age":"22"
}]
}
This is my leaderboard component
function LeaderBoard({sorted}) {
let history = useHistory();
let newList;
console.log(sorted);
let lists = response.list
const handleClick =()=>{
history.push('/rank')
}
return (
<div className="text-center mt-50">
<div>
<div>
<button data-testid="route-rank" className='outlined' type="button" onClick={handleClick}>Rank</button>
<button data-testid="route-name" className='outlined' type="button">Name</button>
<button data-testid="route-points" className='outlined' type="button">Points</button>
<button data-testid="route-age" className='outlined' type="button">Age</button>
</div>
</div>
<div className="card mx-auto pb-20 mb-30" style={{ width: '50%' }}>
<table className="mt-50" data-testid="app-table">
<thead>
<tr>
<th>Rank</th>
<th>Name</th>
<th className="numeric">Points</th>
<th className="numeric">Age</th>
</tr>
</thead>
<tbody data-testid="app-tbody">
{lists.map((ele,index)=>{
// console.log(index)
return(
<tr key={ele.rank}>
<td data-testid={`rank-${index}`}>{ele.rank}</td>
<td data-testid={`name-${index}`}>{ele.name}</td>
<td data-testid={`points-${index}`} className="numeric">{ele.points}</td>
<td data-testid={`age-${index}`} className="numeric">{ele.age}</td>
</tr>
)
})}
</tbody>
</table>
</div>
</div>
);
}
export default LeaderBoard;
how to sort the json file by each rank,name,point,age and render it