Non só é necesario que un programador complete as tarefas, senón que tamén é necesario facer as tarefas dun xeito máis eficiente. Hoxe en día hai varias bibliotecas dispoñibles en JavaScript que facilitan aos desenvolvedores o traballo con variables. Neste tutorial aprenderemos a utilizar as funcións máis comúns da biblioteca de Lodash.
Se aínda non probaches Lodash, agora é o momento. Lodash é un paquete de utilidades JavaScript contemporáneo que simplifica o traballo con matrices, enteiros, obxectos, textos e outros tipos de datos.
Axudarache a xestionar varios tipos de obxectos e aforrarache tempo eliminando a necesidade de codificar métodos xenéricos. O teu código será máis limpo con menos liñas e funcionará en todos os navegadores. Se aínda non o estás a utilizar, debes consideralo coidadosamente.
Non adoptar Lodash supón unha gran perda para as nosas bases de código JavaScript. É unha solución elegante e sen erros para os desafíos comúns que temos no traballo, e utilizala só fará que o noso código sexa máis lexible e manexable.
Afondemos nalgunhas das funcións de Lodash máis populares (ou non!) e descubramos o extremadamente útil e fermosa que é esta biblioteca.
1. _.clasificadoUniq
Non se devolverán todos os valores duplicados con este. Como é só para matrices ordenadas, utilízase principalmente por razóns de velocidade. Isto só é útil se está a tratar cunha gran variedade. Se queres mellorar a velocidade, ordena a túa matriz e utiliza métodos que funcionen mellor coas matrices ordenadas.
Lodash ten outras funcións similares a esta. Podes consultar .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy
2. _.reducir
_.reducir é semellante a unha función de filtro. A única diferenza é que tes a opción de seleccionar a forma do obxecto devolto. É normal, se non comprendes o que digo; hai un exemplo para iso.
En esencia, devolvemos un novo obxecto que contén usuarios clasificados por idade, pero só para aqueles de 18 a 59 anos. Esta función auxiliar de Lodash é unha das máis utilizadas. Tamén está incluído en ES6. Tamén quero sinalar dous erros típicos: lembrar devolver o resultado ao final da función e proporcionar o valor predeterminado para o resultado como terceiro parámetro (aquí).
3. _.get e ._set
Para este, vouche enganar un pouco mostrándoche dúas funcións que realizan case o mesmo. _.get devolve un valor de propiedade dun obxecto e _.set, ben, adiviñaches, establece unha propiedade cun valor. Nada único, excepto que podes acceder a unha propiedade polo seu camiño.
Vexamos un exemplo.
Se a ruta non existe mentres se chama a _.set, xerarase. Non haberá máis erros de tipo "Non se poden establecer "elementos" da propiedade de non definidos". Se o camiño non existe, _.get devolverá indefinido en lugar dun erro. Se o camiño queda indefinido, tamén pode proporcionar un valor predeterminado (terceiro parámetro).
4. _.atopar
En lugar de recorrer unha matriz para atopar un único obxecto, podemos usar _.find. Iso é bo, pero non é o único que pode facer _.find. Cunha soa liña de código, tamén pode descubrir un obxecto utilizando numerosas propiedades. Bótalle unha ollada!
5. _.keyBy
Un dos meus favoritos é _.keyBy. É bastante útil cando se intenta obter un obxecto cun determinado atributo. Supoña que temos 100 entradas de blog e queremos coller a que ten o identificador "34abc". Como o imos facer? A ver que pasa! Este método pode axudarche a organizar unha colección de obxectos se un servidor a proporciona como unha matriz. Unha función tamén se pode usar como segundo argumento.
6. _.paraCada
Este método iterará sobre unha matriz de obxectos un por un, permitíndoche facer a lóxica que queiras. Neste primeiro exemplo, pasarei unha lista de obxectos de usuario, fusionando os seus nomes e apelidos para crear unha nova propiedade chamada fullName.
forCada un destes acepta dous parámetros. A matriz na que estamos recorrendo é o primeiro parámetro. O segundo argumento é unha función de iteración, sendo o primeiro parámetro a referencia individual do elemento e o segundo o índice actual da iteración.
7. _.mapa
Map, como forEach, itera a través dunha matriz de valores. A función de mapa, por outra banda, devolve unha nova matriz de valores proporcionados pola función de iteración. Estamos utilizando a mesma colección de usuarios que no noso exemplo forEach aquí. Podemos usar _.map para xerar unha nova variable que teña unha matriz aplanada dos nomes completos de todos os usuarios.
8. _.diferenza
A función de diferenza producirá unha nova matriz de valores que difiren entre a primeira e a segunda matriz. É vital ter en conta que as localizacións dos argumentos afectan os resultados.
9. _.conseguir
A función _.get() pode axudarnos a localizar un elemento dentro dun obxecto. Podemos establecer un valor predeterminado para que a función _.get() devolva se non se atopa un elemento no camiño indicado. A función _.get() toma tres parámetros, o primeiro dos cales é o obxecto do que desexamos obter un elemento. O camiño é o segundo. O terceiro valor é o valor predeterminado que queremos devolver se non se pode localizar un elemento.
10. _.atopar
A función _find() pode parecer idéntica ao método _.get(). A función _.find(), como o método _.get(), acepta tres parámetros. Non obstante, a diferenza do método _.get(), o primeiro argumento pode ser unha matriz ou un obxecto. O segundo argumento especifica a función que se chamará en cada iteración. A terceira entrada é o índice de inicio da colección. Porque a función _.find() itera sobre cada elemento dunha colección.
11. _.grupoPor
Crea un obxecto chamado polo resultado dunha función (ou un nome de propiedade seleccionado aleatoriamente), sendo cada valor unha matriz de obxectos coa mesma clave.
12. _.conxunto
O método _.set() é o inverso do método _.get(). Cambiará o valor dun elemento nun camiño determinado. O obxecto ou matriz é o primeiro parámetro, o camiño é o segundo e o valor que quere establecer é o terceiro.
13. _.fusionar
Funciona de xeito similar a Object.assign, agás que recorre profundamente na estrutura subxacente para actualizar os obxectos máis profundos en lugar de substituílos.
14. ._desbarbar
Este é un exemplo bastante sinxelo. Elimínanse todas as "marcas diacríticas que combinan". Así, "é" pasa a ser "e". Cando hai internacionalización e localización, é unha boa práctica desbarbar o texto para as funcións de busca.
15. _.rebotar
Esta é unha das estratexias Lodash máis eficaces. Tamén pode ser difícil comprender o que fai e cando debes usalo. O método _.debounce() devolve unha función. A función do método _.debounce() atrasará a invocación ata que transcorra un número especificado de milisegundos desde a última invocación da función.
Conclusión
Lodash é unha poderosa extensión da linguaxe JavaScript. Cun mínimo esforzo, pódese construír un código sucinto e eficiente. Lodash tamén é completamente modular. Aínda que algunhas das súas funcionalidades poden quedar en desuso, creo que aínda proporcionará numerosos beneficios aos desenvolvedores á vez que impulsará a evolución da linguaxe JS.
Espero que estas poucas capacidades de Lodash che axuden a ver o poderoso que pode ser Lodash cando traballas con matrices, obxectos e coleccións. Podes visitar o documentación explorar unha infinidade de outras opcións que ofrece.
Deixe unha resposta