2017-11-08 5 views
0

배열에서 중복 레코드를 제거하는 다음과 같은 방법이 있습니다. updatedDatetime에서 최신 이름 레코드를 원합니다. 마지막으로 업데이트 된 날짜 - 시간으로 레코드를 정렬하는 방법? 나는 최신 기록을 보여주고 싶다. 오름차순으로 들어배열에서 레코드를 지우는 방법 중복 배열 제거

var list = removeDuplicates(listjson, 'user_id'); 

    function removeDuplicates(originalArray, objKey) { 
      var trimmedArray = []; 
      var values = []; 
      var value; 

      for(var i = 0; i < originalArray.length; i++) { 
       value = originalArray[i][objKey].name; 

       if(values.indexOf(value) === -1) { 
       trimmedArray.push(originalArray[i]); 
       values.push(value); 
       } 
      } 

      return trimmedArray; 

      } 

    { 
     "_id": "59edd7c5ff809c1c4c7a43c2", 
     "updatedDatetime": "2017-11-08T11:51:33.106Z", 
     "createdDatetime": "2017-11-08T11:51:33.106Z", 
     "message": "test sms for mobile", 
     "user_id": { 
      "_id": "59f07d5c935f27764c8d1090", 
      "name": "sami" 
     }, 
     "__v": 0 
    } { 
     "_id": "59e9e039d0a8251c7cf29f98", 
     "updatedDatetime": "2017-11-08T11:28:33.401Z", 
     "createdDatetime": "2017-11-08T11:28:33.401Z", 
     "message": "test sms for mobile", 
     "user_id": { 
      "_id": "59f07d5c935f27764c8d1091", 
      "name": "zami" 
     }, 
     "__v": 0 
    } { 
     "_id": "59f42b6823fcdc31b4185246", 
     "updatedDatetime": "2017-11-07T07:02:00.841Z", 
     "createdDatetime": "2017-11-07T07:02:00.841Z", 
     "message": "hi",  
     "user_id": { 
      "_id": "59f07d5c935f27764c8d1091", 
      "name": "sami" 
     }, 
     "__v": 0 
    } { 
     "_id": "59f1c143a1f0ce2114700ef4", 
     "updatedDatetime": "2017-11-06T11:04:35.140Z", 
     "createdDatetime": "2017-11-06T11:04:35.140Z", 
     "message": "mobile user", 
     "user_id": { 
      "_id": "59f07d5c935f27764c8d1091", 
      "name": "zami" 
     }, 
     "__v": 0 
    }] 

답변

0

: 내림차순의 경우

<div ng-repeat="record in records | orderBy : 'updatedDatetime'"> 
     {{ record.updatedDatetime | date : 'dd/MM/yyyy' }} 
    </div> 

사용 -

<div ng-repeat="record in records | orderBy : '-updatedDatetime'"> 
     {{ record.updatedDatetime | date : 'dd/MM/yyyy' }} 
    </div> 
0

기록의 배열에서 누락 몇 쉼표가됩니다.

최신 updatedTime을 원할 경우 배열을 정렬해야합니다. 아래 예를 참조하십시오. 해결 방법 1 : 당신이 HTML에 주문하려면 다음

var app = angular.module('myAngularApp', []); 
 

 
app.controller('test', function ($scope,$q) { 
 
    $scope.arr = [{ 
 
     "_id": "59edd7c5ff809c1c4c7a43c2", 
 
     "updatedDatetime": "2017-11-08T11:51:33.106Z", 
 
     "createdDatetime": "2017-11-08T11:51:33.106Z", 
 
     "message": "test sms for mobile", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1090", 
 
      "name": "sami" 
 
     }, 
 
     "__v": 0 
 
    }, { 
 
     "_id": "59e9e039d0a8251c7cf29f98", 
 
     "updatedDatetime": "2017-11-08T11:28:33.401Z", 
 
     "createdDatetime": "2017-11-08T11:28:33.401Z", 
 
     "message": "test sms for mobile", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "zami" 
 
     }, 
 
     "__v": 0 
 
    } ,{ 
 
     "_id": "59f42b6823fcdc31b4185246", 
 
     "updatedDatetime": "2017-11-07T07:02:00.841Z", 
 
     "createdDatetime": "2017-11-07T07:02:00.841Z", 
 
     "message": "hi",  
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "sami" 
 
     }, 
 
     "__v": 0 
 
    }, { 
 
     "_id": "59f1c143a1f0ce2114700ef4", 
 
     "updatedDatetime": "2017-11-06T11:04:35.140Z", 
 
     "createdDatetime": "2017-11-06T11:04:35.140Z", 
 
     "message": "mobile user", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "zami" 
 
     }, 
 
     "__v": 0 
 
    }] 
 
});
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<body ng-app="myAngularApp"> 
 
<div ng-controller="test"> 
 
    <div ng-repeat = "a in arr|orderBy:'updatedDatetime' : true"> 
 
    {{a.updatedDatetime}} 
 
    
 
    </div> 
 
</div> 
 

 
</body> 
 
</html>

해결 방법 2 : 당신이 당신의 js에서 그것을하고 싶은 경우 :

var app = angular.module('myAngularApp', []); 
 

 
app.controller('ExampleController', ['$scope', 'orderByFilter', function($scope, orderBy) { 
 
    $scope.arr = [{ 
 
     "_id": "59edd7c5ff809c1c4c7a43c2", 
 
     "updatedDatetime": "2017-11-08T11:51:33.106Z", 
 
     "createdDatetime": "2017-11-08T11:51:33.106Z", 
 
     "message": "test sms for mobile", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1090", 
 
      "name": "sami" 
 
     }, 
 
     "__v": 0 
 
    }, { 
 
     "_id": "59e9e039d0a8251c7cf29f98", 
 
     "updatedDatetime": "2017-11-08T11:28:33.401Z", 
 
     "createdDatetime": "2017-11-08T11:28:33.401Z", 
 
     "message": "test sms for mobile", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "zami" 
 
     }, 
 
     "__v": 0 
 
    } ,{ 
 
     "_id": "59f42b6823fcdc31b4185246", 
 
     "updatedDatetime": "2017-11-07T07:02:00.841Z", 
 
     "createdDatetime": "2017-11-07T07:02:00.841Z", 
 
     "message": "hi",  
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "sami" 
 
     }, 
 
     "__v": 0 
 
    }, { 
 
     "_id": "59f1c143a1f0ce2114700ef4", 
 
     "updatedDatetime": "2017-11-01T11:04:35.140Z", 
 
     "createdDatetime": "2017-11-09T11:04:35.140Z", 
 
     "message": "mobile user", 
 
     "user_id": { 
 
      "_id": "59f07d5c935f27764c8d1091", 
 
      "name": "zami" 
 
     }, 
 
     "__v": 0 
 
    }] 
 
    
 
    
 
    $scope.propertyName = 'updatedDatetime'; 
 
    $scope.reverse = true; 
 
    $scope.arr = orderBy($scope.arr, $scope.propertyName,   $scope.reverse); 
 
}]);
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<body ng-app="myAngularApp"> 
 
<div ng-controller="ExampleController"> 
 
    <div ng-repeat = "a in arr "> 
 
    {{a.updatedDatetime}} 
 
    
 
    </div> 
 
</div> 
 

 
</body> 
 
</html>