0
var keys = ['name','age','gender'];

var input = {"document":
             {"people":[
                {"name":["Harry Potter"],"age":["18"],"gender":["Male"]},
                {"name":["hermione granger"],"age":["18"],"gender":["Female"]},
             ]}
            }

How to get values from specific key. Example {Harry Potter, 18, Male}?

JJJ
  • 32,902
  • 20
  • 89
  • 102
Hikaru Shindo
  • 2,611
  • 8
  • 34
  • 59

2 Answers2

1

You could use pick to extract the properties that you're interested in:

var people = _.map(input.document.people, function(person){
    return _.flatten( _.values(_.pick(person, keys)));
});

angular.module('MyModule', [])

.controller('MyController', function($scope) {

  var keys = ['name','age','gender'];

  var input = {"document":
             {"people":[
                {"name":["Harry Potter"],"age":["18"],"gender":["Male"]},
                {"name":["hermione granger"],"age":["18"],"gender":["Female"]}
             ]}
            };
               
  var people = _.map(input.document.people, function(person){
    return _.flatten( _.values(_.pick(person, keys)));
  });
  
  $scope.people = people;
});
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app='MyModule' ng-controller='MyController'>
  <p ng-repeat='person in people'>{{person | json}}</p>
</div>
Gruff Bunny
  • 27,738
  • 10
  • 72
  • 59
-1

Iterate through input.document.people and use keys from keys array as

for(x in input.document.people){
  for(y in keys){
     console.log(input.document.people[x][keys[y]])
  }
}

Please refer to fiddle for same

Mazzu
  • 2,799
  • 20
  • 30