【问题标题】:Sort object with array ordering by key name [duplicate]按键名排序数组排序对象[重复]
【发布时间】:2023-01-19 03:03:56
【问题描述】:

如何对内部有数组的对象进行排序。我需要在 javascript 中按名称排序。 我的目标是:

(4) [{...},{...},{...},{...}]
 0: {Age: 10, Name: 'John'}
 1: {Age: 25, Name: 'Maria'}
 2: {Age: 23, Name: 'Ana'}
 3: {Age: 27, Name: 'Pedro'}

输出应该是这样的对象:

(4) [{...},{...},{...},{...}]
     0: {Age: 23, Name: 'Ana'}
     1: {Age: 10, Name: 'John'}
     2: {Age: 25, Name: 'Maria'}
     3: {Age: 27, Name: 'Pedro'}

【问题讨论】:

  • 你读过documentation了吗?此外,您的示例是按值排序,而不是标题中提到的键名。

标签: javascript


【解决方案1】:

根据String.prototype.localeCompare的结果排序(注意Array.prototype.sort也改变了原始数组)

const data = [{Age: 10, Name: 'John'},
{Age: 25, Name: 'Maria'},
{Age: 23, Name: 'Ana'},
{Age: 27, Name: 'Pedro'},]

const newData = data.sort((a, b) => a.Name.localeCompare(b.Name));

console.log(newData);

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2021-06-06
    • 2020-10-11
    • 1970-01-01
    • 2017-10-26
    • 2017-10-04
    相关资源
    最近更新 更多