2016-04-12 38 views
2

我想按字母顺序排序和显示数组,一旦用户选择或当我们从后端渲染数据时,我想按字母顺序显示fullName$scope.selecedControlOwnerng-click事件处理程序一旦用户从模态窗口中选择所有者并单击确定ng-click事件触发器并在父窗口上显示值现在,我要触发排序。如何使用AngularJs或Javascript对数组进行排序?

$scope.controlOwnerObj.workerName是将值绑定到父窗口的ng模型。

有没有解决方案使用AngularJs或本地Javascript?

ctrl.js

$scope.selectedControlOwner = function() { 
     $scope.controlOwnerObj.workerName= $scope.selectedOwners.map(function (owner) { return owner.fullName; }).join(';'); 
    }; 


    $scope.selectedOwners = [{ 
      "workerKey": 46958, 
      "fullName": ,"Kumari, Swapna" 
     }, { 
      "workerKey": 746, 
      "fullName": "Mike Piero", 
     }, { 
      "workerKey": 150918, 
      "fullName": "A J, Jyothish", 
     }], 
+0

http://stackoverflow.com/questions/1129216/sort-array-of-objects-by-string-property-value-in-javascript – Kalman

+0

http://stackoverflow.com/questions/ 19259233/sorting-json-by-specific-element-alphabetically –

+1

[对JavaScript对象数组排序]的可能重复(http://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects) – Igor

回答

2

采用javascript内置sort功能

$scope.selectedOwners = [{ 
      "workerKey": 46958, 
      "fullName": ,"Kumari, Swapna" 
     }, { 
      "workerKey": 746, 
      "fullName": "Mike Piero", 
     }, { 
      "workerKey": 150918, 
      "fullName": "A J, Jyothish", 
     }], 
$scope.selectedOwners.sort(function(a, b) { 
    return a.fullName.localeCompare(b.fullName); 
}); 
+0

这里的问题是偶数组排序我将'$ scope.controlOwnerObj.workerName'赋值给ng模型,我们是否需要某些具有该属性的东西在这里有点混淆 – hussain

+0

@hussain如果你想拥有排序后的所有者名称字符串,你必须在'map'之前排序你的数组,像这样'.sort(function(a,b){return a.fullName.localeC ompare(b.fullName);})。map(function(owner){return owner.fullName; })。join(';');' – Farnabaz

+0

谢谢你解决了我的问题。 – hussain

0

我将只使用纯JavaScript,因为你给了我们作为一个选项

这将它们排序,从低到高

var arr = [12, 213, 3, 121, 44, 12]; 
    arr.sort(function (x, y) { 
     return x > y; 
    }) 

一点也没有不会返回一个新的数组。

结果:[3,12,12,44,121,213]

此将它们排序,从高度低

arr.sort(function (x, y) { 
     return x < y; 
    }) 

结果[213,121,44,12,12,3 ]

相关问题