L'équivalent de trait de Soulignement _.plumer en JavaScript

Je suis en train de recréer le trait de Soulignement arracher la fonction à l'aide de pure JS. Cependant, je reçois un tableau de undefineds être retourné, au lieu de la valeur réelle des propriétés des objets dans un tableau.

De vérifier un autre thread ici j'ai trouvé que vous pouvez reproduire en jQuery avec le code suivant...

$.pluck = function(arr, key) { 
    return $.map(arr, function(e) { return e[key]; }) 
}

...cependant, je vais avoir de la difficulté à reproduire simplement ce dans le plus pur JS. J'ai essayé le suivant, mais ce n'est qu'en retournant un tableau de undefineds pour moi.

var pluck = function(arr,key){
  var newArr = [];
  for (var i = 0, x = arr.length; i < x; i++){
    if (arr[i].hasOwnProperty(key)){
      newArr.push(arr[i].key)
    }
  }
  return newArr;
}

Ainsi, le but serait la suivante, sauf qu'au lieu d'utiliser le trait de soulignement"_.plumer, il suffit d'utiliser un JS nom de la fonction, par exemple. var arracher = function(arr,key){...}

var Tuts = [{name : 'NetTuts', niche : 'Web Development'}, {name : 'WPTuts', niche : 'WordPress'}, {name : 'PSDTuts', niche : 'PhotoShop'}, {name : 'AeTuts', niche : 'After Effects'}];
var niches = _.pluck(Tuts, 'niche');

console.log(niches);

//["Web Development", "WordPress", "PhotoShop", "After Effects"]

Quelqu'un pourrait-il m'orienter dans la bonne direction?

  • La bonne chose à propos de Souligner, c'est que son code source est disponible en ligne dans annoté de la forme, de sorte qu'il est assez facile de le lire et de voir ce qu'ils font. Voici la source pour _.pluck(), bien qu'il est principalement composé de _.map() et _.property().
InformationsquelleAutor wesleysmyth | 2014-09-08