gpt4 book ai didi

javascript - 在特殊情况下使用 Angularjs OrderBy 进行排序

转载 作者:行者123 更新时间:2023-11-30 08:06:06 25 4
gpt4 key购买 nike

我有一些数据正在尝试使用 Angular 的 orderBy 过滤器在表格中进行排序。这是我尝试排序的数据。

[
{
"name":"John Doe",
"room":"1M-103",
},
{
"name":"Joe Schmoe",
"room":"12M-353",
},
{
"name":"Bob Guy",
"room":"13M-546",
},
{
"name":"Another Person",
"room":"12M-403",
},
{
"name":"Fred No-name",
"room":"3M-204",
},
[

因此按名称排序效果很好。然而,按房间分类是另一个问题。我正在以完全相同的方式对其进行排序。这是我希望排序后的样子:

1M-103
3M-204
12M-353
12M-403
13M-546

排序后它实际上的样子是这样的:

12M-353
12M-403
13M-546
1M-103
3M-204

有人能帮忙吗?我知道为什么它是这样排序的,因为它是一个数字一个数字地正确排序,但是有没有人找到某种方法来获得稍微更好的排序?

最佳答案

您可以创建自定义排序器来执行此操作。

<li ng-repeat="item in items | orderBy:mySorter">{{item}}</li>

$scope.mySorter = function (item) {
return Number(item.room.split('-')[0].replace('M', ''));
}

我还为您创建了一个演示。

已更新

您还可以使用正则表达式:

$scope.mySorter = function (item) {
return Number(item.room.replace(/[^\d]/g, ''));
}

Demo

关于javascript - 在特殊情况下使用 Angularjs OrderBy 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026150/

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