Hola,
Aquí hay un caso de uso común para el filtro. Dado
a = {35: true, 45: true, 55: false}
a uno le gustaría filtrar y recuperar solo pares cuyo valor es verdadero:
_.filter(a, function(val, key) {
val === true;
});
// => {35: true, 45: true}
Actualmente, funciones como filter push(value) para que uno obtenga una matriz.
¿Hay alguna manera fácil de lograr esto con una solución y, de no ser así, consideraría cambiar el tipo de devolución en función de si proporcionamos un objeto o una lista?
+1
Solo necesitaba lo mismo y este problema fue el segundo Google git que obtuve al buscar. El único problema de hacer que _.filter en objetos devuelva objetos es la compatibilidad con versiones anteriores...
filter
es una función que se origina en ES5... y ciertamente no queremos romper la compatibilidad básica con la especificación.
Para abordar el panorama general: todas las funciones enumerables de Underscore.js pueden tomar objetos o matrices, y todas devuelven matrices. Romper la consistencia aquí tendría que hacerse para todas las funciones a la vez, no solo para una de ellas. La API actual le permite componer funciones de subrayado sin tener que preocuparse por los tipos de entrada.
Agregué funciones de filtro y rechazo a esta combinación de funciones de mapa de seguimiento para objetos con persistencia de clave/valor:
+1
+1 ¿Podrían agregar _.filterObj
(etc) uno a la vez, similar a _.mapObj
?
jk, acabo de ver _.pick
que es perfecto para mi caso de uso
@jtfairbank exactamente lo que necesito y probablemente lo que la mayoría de las personas necesitan cuando vienen aquí buscando 'filtrar' un objeto y crear un objeto.
Comentario más útil
jk, acabo de ver
_.pick
que es perfecto para mi caso de uso