0
$scope.items = [
{
sourceBuildingId: "B001",
sourceBuildingName: "Building 1",
destinationBuildingId: "B002"
destinationBuildingName: "Building 2" 
},
{
sourceBuildingId: "B003",
sourceBuildingName: "Building 3",
destinationBuildingId: "B002",
destinationBuildingName: "Building 2" 
},
{
sourceBuildingId: "B001",
sourceBuildingName: "Building 1",
destinationBuildingId: "B003",
destinationBuildingName: "Building 3" 
},
{
sourceBuildingId: "B002",
sourceBuildingName: "Building 2",
destinationBuildingId: "B004",
destinationBuildingName: "Building 4" 
}];

$scope.destinationBuildingIdList="";

How to fetch the distinct building ID list alone from $scope.items and store into $scope.destinationBuildingIdList variable?

Kavin
  • 303
  • 2
  • 14
  • @Sajeetharan The duplicated question selected only solves the "distinct" values from an array. It doesn't explain how to create a list based on attributes from other listed objects, as Sachila's answer illustrates. Is it right to close this? – AFP_555 May 11 '17 at 14:58
  • 1
    @AFP_555 Main part of the question is similar to the link i attached. Rest is a matter of assignment. Hence it's a duplicate. – Sajeetharan May 11 '17 at 15:30
  • @Sajeetharan Just as a question, because I really don't know, can multiple duplicated be assigned to a question? – AFP_555 May 11 '17 at 16:16

1 Answers1

1

just use the javascript map function

$scope.destinationBuildingIdList= $scope.items.map(o=> o.destinationBuildingId)

demo

angular.module("app",[])
.controller("ctrl",function($scope){

$scope.items = [
      {
      sourceBuildingId: "B001",
      sourceBuildingName: "Building 1",
      destinationBuildingId: "B002",
      destinationBuildingName: "Building 2" 
      },
      {
      sourceBuildingId: "B003",
      sourceBuildingName: "Building 3",
      destinationBuildingId: "B002",
      destinationBuildingName: "Building 2" 
      },
      {
      sourceBuildingId: "B001",
      sourceBuildingName: "Building 1",
      destinationBuildingId: "B003",
      destinationBuildingName: "Building 3" 
      },
      {
      sourceBuildingId: "B002",
      sourceBuildingName: "Building 2",
      destinationBuildingId: "B004",
      destinationBuildingName: "Building 4" 
}];

$scope.destinationBuildingIdList= $scope.items.map(o=> o.destinationBuildingId)

console.log($scope.destinationBuildingIdList)
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 
</div>
Sachila Ranawaka
  • 39,756
  • 7
  • 56
  • 80