javascipt按数组中对象的字母字段排序问题

let data =  [
    {name : 'Bob', score : '95', age : '18'},
    {name : 'Amy', score : '86', age : '18'},
    {name : 'Coco',score : '36',age : '18'},
    {name : 'Mark',score : '80', age : '18'},
    {name : 'Frank',score : '40',age : '18'}
  ];

  compare = (val1,val2) =>{
    return val1.name.toLowerCase() > val2.name.toLowerCase();
  };

  console.log(data.sort(compare)); // 结果根据名字从 A-Z 顺序排列

这段代码我认为是可以实现按字母表顺序排列的,但就是得不到结果,求高手指教哪里有问题?

阅读 1.2k
2 个回答

comparefn 需要:

== 返回 0
> 返回 >0
< 返回 <0

你这个写得并不对。

这句改一下

return val1.name.toLowerCase() > val2.name.toLowerCase() ? 1: -1;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题