-5

Is it possible to get an array of all subentries with a certain name of an array? For example, I have this array:

var array = [
  {
     "char": "a",
     "number": 5
  },
  {
     "char": "x",
     "number": 9
  },
  {
     "char": "u",
     "number": 2
  },
  {
     "char": "q",
     "number": 4
  }
];

How can I then get an array of all number (or all char) entries like this?

*returned array* = ["a", "x", "u", "q"]; or *returned array* = [5, 9, 2, 4];

A simple (one-line) solution would be most helpful. Thanks in advance!

Sacha
  • 819
  • 9
  • 27

3 Answers3

2

Array.prototype.map will do the trick...

var array = [
  {
     "char": "a",
     "number": 5
  },
  {
     "char": "x",
     "number": 9
  },
  {
     "char": "u",
     "number": 2
  },
  {
     "char": "q",
     "number": 4
  }
];

var numbers = array.map(function(el) { return el.number; });
var chars = array.map(function(el) { return el.char; });

console.log(numbers);
console.log(chars);
Reinstate Monica Cellio
  • 25,975
  • 6
  • 51
  • 67
2

This will get the values depending on what you specify.

var array = [
  {
     "char": "a",
     "number": 5
  },
  {
     "char": "x",
     "number": 9
  },
  {
     "char": "u",
     "number": 2
  },
  {
     "char": "q",
     "number": 4
  }
];
var result = array.map(x => x.char);
console.log(result)
Scath
  • 3,777
  • 10
  • 29
  • 40
2

You could take a variable for the wanted key and map the values.

var array = [{ char: "a", number: 5 }, { char: "x", number: 9 }, { char: "u", number: 2 }, { char: "q", number: 4 }],
    key = 'char',
    result = array.map(o => o[key]);
    
console.log(result);
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392