gpt4 book ai didi

javascript - 按第一个字符排序数组,然后在 JavaScript 中编号

转载 作者:行者123 更新时间:2023-12-05 00:34:42 25 4
gpt4 key购买 nike

对象列表包含如下数据:

[
{name: 'Foo 1'},
{name: 'Foo 14'},
..
{name: 'Foo 2'},
{name: 'Bar 1'},
{name: 'Bar 15'},
...
{name: 'Bar 2'},
]
我需要将其排序为
[
{name: 'Bar 1'},
{name: 'Bar 2'},
...
{name: 'Bar 15'},
{name: 'Foo 1'},
{name: 'Foo 1'},
...
{name: 'Foo 12'},
]
使用经典字符排序“Foo 14”领先于“Foo 2”,所以我需要按字母和数字排序。
值模式:可能有多个单词,但总是以“word word .. number”之类的数字结尾

最佳答案

您可以使用 Collator#compare 为了这。 compare()方法根据 Intl.Collator 的排序顺序比较两个字符串目的。只要确保你传递了一个你设置numeric的选项对象。至true :

const collator = new Intl.Collator("en", {
numeric: true,
sensitivity: "base",
});

const arr = [
{ name: "Foo 1" },
{ name: "Baz 21" },
{ name: "Foo 14" },
{ name: "Foo 2" },
{ name: "Bar 1" },
{ name: "Baz 10" },
{ name: "Bar 15" },
{ name: "Bar 2" },
{ name: "Baz 1" },
{ name: "Baz 2" },
];

const sorted = arr.sort((a, b) => collator.compare(a.name, b.name));

console.log(sorted);

关于javascript - 按第一个字符排序数组,然后在 JavaScript 中编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70218069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com