【问题标题】:Sort array by name with sort() [duplicate]使用 sort() 按名称对数组进行排序 [重复]
【发布时间】:2021-05-29 11:03:11
【问题描述】:

我正在尝试按字母顺序按名称对数组进行排序,使用数字可以使用,但使用名称则不行。为什么?

var arr = [{
    name: 'Thomas',
    age: 19
  },
  {
    name: 'Noé',
    age: 17
  },
  {
    name: 'Andrey',
    age: 27
  },
  {
    name: 'Luc',
    age: 20
  }
]

const res = arr.sort((e1, e2) => e1.name - e2.name)

console.log(res)

【问题讨论】:

  • e1.name - e2.name 你想减去两个字符串吗?你除了要还什么吗?

标签: javascript


【解决方案1】:

字符串不能相减,但可以使用localeCompare进行比较

const res = arr.sort((e1, e2) =>
  e1.name.toLowerCase().localeCompare(e2.name.toLowerCase())
);

【讨论】:

    猜你喜欢
    • 2019-03-09
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2021-07-26
    相关资源
    最近更新 更多