Oi,
Aqui está um caso de uso comum para filtro. Dado
a = {35: true, 45: true, 55: false}
alguém gostaria de filtrar e receber apenas pares cujo valor é verdadeiro:
_.filter(a, function(val, key) {
val === true;
});
// => {35: true, 45: true}
Atualmente, funções como filtro push(valor) para obter uma matriz.
Existe alguma maneira fácil de conseguir isso com uma solução alternativa e, se não, você consideraria mudar o tipo de retorno com base no fato de estarmos fornecendo um objeto ou uma lista?
+1
Eu só precisava da mesma coisa e esse problema foi o segundo git do Google que recebi ao pesquisar. O único problema em fazer _.filter em objetos retornar objetos é a compatibilidade com versões anteriores...
filter
é uma função originada no ES5... e certamente não queremos quebrar a compatibilidade básica com a especificação.
Para abordar o quadro geral: Todas as funções enumeráveis Underscore.js podem receber objetos ou matrizes e todas retornam matrizes. Quebrar a consistência aqui precisaria ser feito para todas as funções de uma só vez, não apenas uma delas. A API atual permite compor funções de sublinhado sem ter que se preocupar com os tipos de entrada.
Eu adicionei funções de filtro e rejeição a essas funções de mapa de rastreamento de mixagem para objetos com persistência de chave/val:
+1
+1 Vocês poderiam adicionar _.filterObj
(etc) um de cada vez, semelhante a _.mapObj
?
jk, acabei de ver _.pick
que é perfeito para o meu caso de uso
@jtfairbank exatamente o que eu preciso e provavelmente o que a maioria das pessoas precisa quando vêm aqui procurando 'filtrar' um objeto e criar um objeto.
Comentários muito úteis
jk, acabei de ver
_.pick
que é perfeito para o meu caso de uso