Quel est l'objet de l'équivalent de _.plumer

J'ai re-mise en œuvre ma propre version de ce dont j'ai besoin mais je crois que cela est déjà inclus dans le souligner puisque c'est si simple et si étroitement liée à de nombreuses autres fonctions. Mais je ne peux pas penser à ce qu'il devrait être appelé.

Fondamentalement, ce que je veux, c'est une version de _.plumer qui fonctionne avec les objets et retourne un objet au lieu d'un tableau (avec ses touches associées).

Ainsi, par exemple, si j'avais un objet comme celui-ci:

elements: {
    steam: {
        temperature: 100,
        color: 'orange',
        state: 'gas'
    },
    water: {
        temperature: 50,
        color: 'blue',
        state: 'liquid'
    },
    ice: {
        temperature: 0,
        color: 'white',
        state: 'solid'
    }
}

Je veux appeler _.something(elements, 'temperature')

Et de l'avoir de retour

{
    steam: 100,
    water: 50,
    ice: 0
}

Au lieu de _.pluck(elements, 'temperature') qui renvoie

[100, 50, 0]

Qu'est-ce que cette transformation a appelé et est-il déjà inclus dans le trait de soulignement? J'ai écrit une version rapide de moi-même avec du jQuery chaque boucle depuis que je suis plus familier avec jQuery que le trait de soulignement (inclus ci-dessous), mais préfèrent utiliser l'une à partir de la bibliothèque, si possible.

$.objPluck = function(obj, key) {
    var ret = {};
    $.each(obj, function(k, value) {
        ret[k] = value[key];
    });
    return ret;
}
Il y a le Array.map méthode ce qui est essentiellement ce que vous faites, mais avec un objet
Est-il un moyen de faire Array.map préserver les touches?
Je ne suis pas sûr que je comprends ce que tu veux. Et de toute façon, j'étais juste se référant à votre préoccupation initiale de But I can't think of what it should be called. Avec les tableaux, je parlerais de cette "cartographie"

OriginalL'auteur Brad Dwyer | 2013-08-13