首页 > 解决方案 > 转换对象数组以在javascript中进行排序?

问题描述

我正在尝试在我的视图中创建一个可排序的列表。每个行条目都作为一个对象存储在数组中,字符串值会打乱排序。

代码在 Angularjs 中。

我尝试了多种不同的创建列表的方法,虽然列表的排序功能有效,但值本身的排序不正确。我相信这是因为大多数排序错误的值都是字符串而不是整数。

数据示例:

$scope.Info = { length 14
Object {InformationID: 100, fiscalYear: 2019, Number: "9", endDate: "2019-11-09T00:00:00" …
...}}

我试过的代码:

$scope.Info = {};
$scope.number = [];

ContractsService.getInformation()
.then(function (results) {
    $scope.Info = results.data;
    angular.forEach($scope.Info, function (value) {
        $scope.number.push(value.Number);
    }
}

$scope.save = function (Detail) {
[not needed in example]

视图的循环显示:

<tr ng-repeat="Detail in Info | orderBy:rfrorder.Orderby:rfrorder.reverse">

我需要对 $scope.number 进行保存验证,以确保该数字尚未使用,因此将这些字段分开就可以了。但对于其余部分,我很确定我必须遍历 forEach 并转换字符串字段,然后以某种方式将转换后的值用作视图中的对象。

任何帮助,将不胜感激。

标签: jqueryangularjsasp.net-mvcforeach

解决方案


要将Number字段从字符串转换为数字:

$scope.Info.forEach(_ => _.Number = (+_.Number));

有关详细信息,请参阅


推荐阅读