Äquivalent von unterstrich.js _.pluck in jQuery
-
27-10-2019 - |
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
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);