对字符串数组排序

let arr=['america','czab' ,'china','engtt', 'english','ashine', 'japan', 'russia','ukraine'];

,根据字符串的第二个字母进行排序,如果第二个相同,则根据第三个 ,如engtt english,n相同,则比较第三位的g,相同则依次往下,有没有什么不是一直用if else的方法?

阅读 4k
5 个回答
let arr=['america','czab' ,'china','engtt', 'english','ashine', 'japan', 'russia','ukraine'];
arr.sort((a,b)=> a.substring(1) > b.substring(1) ?1:-1 );
arr.sort(function(a, b) {
  var itemA = a.substr(1);
  var itemB = b.substr(1);
  return itemA < itemB ? -1 : 1;
})
arr.sort((a, b) => a.slice(1) > b.slice(1) || -1)

这种事 交给电脑自己去做就好了

arr.sort((a, b) => {
    return a > b ? 1: -1
})

字符串比较会自动处理的,比如'abcd' < 'abce',不管你第几位他都会处理到的。
所以直接用sort就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题