转换对象数组以在javascript中进行排序?
Posted
技术标签:
【中文标题】转换对象数组以在javascript中进行排序?【英文标题】:Converting array of objects for sorting in javascript? 【发布时间】:2019-10-01 16:53:22 【问题描述】:我正在尝试在我的视图中创建一个可排序的列表。每个行条目都作为一个对象存储在数组中,字符串值会打乱排序。
代码在 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 并转换字符串字段,然后以某种方式将转换后的值用作视图中的对象。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:要将Number
字段从字符串转换为数字:
$scope.Info.forEach(_ => _.Number = (+_.Number));
有关详细信息,请参阅
MDN javascript Reference - array.forEach【讨论】:
以上是关于转换对象数组以在javascript中进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
通过Javascript中给定的不完整订单数组对对象数组进行排序
如何使用正则表达式对数组中的 Javascript 对象进行排序