Search code examples
objectmap-function

map function and its return value


For deeper understanding purpose i used val.key instead of val[ ] at function extractKey which i thought would give me [ name, name, name, name ] as result but instead i get [undefined, undefined, undefined, undefined] Why is this ? :

function extractKey(arr, key){



return arr.map(function(val){

    return val.key;

})



}    
extractKey([{name: 'Elie'}, {name: 'Tim'}, {name: 'Matt'}, {name: 
'Colt'}], 'name') // ['Elie', 'Tim', 'Matt', 'Colt']





(4) [undefined, undefined, undefined, undefined]  

Solution

  • Use (square brackets) array notation instead of (dot) object notation.

    function extractKey(arr, key) {
      return arr.map(function(val) {
    
        return val[key];
    
      })
    }
    
    const names = extractKey([{
      name: 'Elie'
    }, {
      name: 'Tim'
    }, {
      name: 'Matt'
    }, {
      name: 'Colt'
    }], 'name'); // ['Elie', 'Tim', 'Matt', 'Colt']
    
    console.log(names);