JavaScript使用.map()对数组元素排序时的奇怪行为
我使用这个代码:JavaScript使用.map()对数组元素排序时的奇怪行为,javascript,reactjs,sorting,react-hooks,Javascript,Reactjs,Sorting,React Hooks,我使用这个代码: const sortedPlayers = props.scorer.sort((a, b) => { if (a.nummer > b.nummer) { return 1; } if (a.nummer < b.nummer) { return -1; } return 0; }); {sortedPlayers.map((player) => {})} 你能解释一下这个谜吗 提前谢谢 /
const sortedPlayers = props.scorer.sort((a, b) => {
if (a.nummer > b.nummer) {
return 1;
}
if (a.nummer < b.nummer) {
return -1;
}
return 0;
});
{sortedPlayers.map((player) => {})}
你能解释一下这个谜吗
提前谢谢
/Peter排序方法将排序到位。换句话说,它会对调用该方法的数组进行变异 通常,您不希望在React中传递组件时使用变异道具,因此(可能)最好在排序之前制作数组的浅层副本:
const sortedPlayers=[…props.scorer].sort((a,b)=>{
如果(a.numer>b.numer){
返回1;
}
if(a.numer{…});
Array.prototype.sort
就地排序,这意味着它会对数组进行变异。sort
方法就地排序。换句话说,它会对调用该方法的数组进行变异。通常,您不希望对在react中传递组件的道具执行此操作,因此(可能)最好是创建数组的浅层副本const sortedPlayers=[…props.scorer]。sort(…)
感谢您的回复ASDFGerte&Nick:)没有考虑到这一点。sort()为回复尼克修改数组库!没有想到,.sort()
会使array@lelkes代码运行时间太长,只有一个数字。但它对两个或多个数字的排序不正确。例如:数字15在1和2之间排序,111在1和15之间排序,我尝试了let keyA=parseInt(a.text(),100);设keyB=parseInt(b.text(),100);返回keyA-keyB代码>但是get:“TypeError:a.text不是函数
const sortedPlayers = props.scorer.sort((a, b) => {}
{props.scorer.map((player) => {})}