Frage

Kennt jemand ein Plugin "Pucken", das der Unterstrich -Array -Methode entspricht?

pluck_.pluck(list, propertyName) 

Eine bequeme Version des vielleicht häufigsten Anwendungsfalls für die Karte: Extrahieren einer Liste von Eigenschaftswerten.

var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]

Google hilft mir heute nicht viel. Alle Zeiger sehr geschätzt

War es hilfreich?

Lösung

Sie können es mit einem Ausdruck tun;

var arr = $.map(stooges, function(o) { return o["name"]; })

Andere Tipps

Schreiben Sie einfach Ihre eigenen

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

Es ist ganz einfach, diese Funktionalität selbst zu implementieren:

function pluck(originalArr, prop) {
    var newArr = [];
    for(var i = 0; i < originalArr.length; i++) {
        newArr[i] = originalArr[i][prop];
    }
    return newArr;
}

Alles, was es tut, ist über die Elemente des ursprünglichen Arrays (jeweils ein Objekt), die Eigenschaft zu erhalten, die Sie aus diesem Objekt angeben, und platzieren Sie sie in ein neues Array.

In einfachem Fall:

var arr = stooges.map(function(v) { return v.name; });

Genauer gesagt:

function pluck(list, propertyName) {
    return list.map(function (v) { return v[propertyName]; })
}

Aber imho, Sie sollten es nicht als Werkzeugfunktion implementieren, sondern den einfachen Fall verwenden stets.

2018 Update:

var arr = stooges.map(({ name }) => name);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top