Dicas sobre Javascript que podem ajudar:
Tags: javascript
Published: 2023-01-04 18:57:49

Quando se está produzindo um código em algum sistema, seja aplicativo ou web, podemos nos deparar com alguma situação que possa exigir, por exemplo o uso de uma importação de biblioteca ou algo de nosso cotidiano que muitas vezes não acaba muito bem nas linhas de código. Por essa razão trouxe 2 situações que podem acontecer ,com  meios de resolução e explicação:

- 
**Como compactar altos valores numéricos usando uma API de internalização:**

Aplicativos que guardam dados de diversos usuários e suas atividades, normalmente marcam algum tipo de numeração, e tendo casos em que se passa de mais de 4 caracteres:seguindo, compartilhando,ou curtindo o sistema pode não estar apto para encurtar um valor tão alto?

 Nesse caso é possível importar uma biblioteca, ou usar API já integrada no JavaScript,que mesmo que já se tenha implementado a formatação de números grande,apresenta uma adição de 0 após mil, mas que pode ser utilizado o método de comando (replace) para sua correção, veja abaixo:


function formatCompactNumber(number) {
  if (number < 1000) {
    return number;
  } else if (number >= 1000 && number < 1_000_000) {
    return (number / 1000).toFixed(1).replace(/\.0$/, "") + "K";
  } else if (number >= 1_000_000 && number < 1_000_000_000) {
    return (number / 1_000_000).toFixed(1).replace(/\.0$/, "") + "M";
  } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {
    return (number / 1_000_000_000).toFixed(1).replace(/\.0$/, "") + "B";
  } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {
    return (number / 1_000_000_000_000).toFixed(1).replace(/\.0$/, "") + "T";
  }
}

Como dito anteriormente existem pacotes npm para formatar números de forma compacta. Por exemplo, você pode instalar cldr-compact-number, mas isso também adicionaria 3 kilobytes (ou 1,2 kilobytes gzipados) ao seu pacote JavaScript, aumentando um pouco o tempo de carregamento da página. Felizmente, você não precisa usar nenhuma biblioteca de terceiros para formatar números compactos, pois existe uma solução relativamente simples com suporte nativo em JavaScript.

- **Funções de Ordem superior explicadas de maneira simplificada:**

 Resumidamente as funções de ordem superior seriam funções que usam outras  funções como argumentos ou que retornam outras funções como resultado de algum argumento. Elas permitem a criação de código mais flexível e reutilizável, pois permitem que você escreva código mais genérico que pode ser adaptado a diferentes situações ao passar funções específicas como argumentos. Veja nos exemplos a seguir:

const arr = [1, 2, 3, 4, 5];
const output = arr.map((num) => num += 10)
console.log(arr); // [1, 2, 3, 4, 5]
console.log(output); // [11, 12, 13, 14, 15]

A função arr está armazenando 5 números consigo, mas no (map) que está ao lado, vindo como uma função de chamada, armazena apenas 1 valor, com isso seria em explicação do cálculo:
 1(primeiro valor do array). map(1) => 1+=10. Com console fornecendo o resultado do output 11, com os valores posteriores sendo aplicados terminando assim em 12,13,14 e 15.


Aplicando também outro exemplo:
const users = [
    {firstName: 'John', lastName: 'Doe', age: 25},
    {firstName: 'Jane', lastName: 'Doe', age: 30},
    {firstName: 'Jack', lastName: 'Doe', age: 35},
    {firstName: 'Jill', lastName: 'Doe', age: 40},
    {firstName: 'Joe', lastName: 'Doe', age: 45},
]

const result = users.map((user) => user.firstName + ' ' + user.lastName)
console.log(result); // ['John Doe', 'Jane Doe', 'Jack Doe', 'Jill Doe', 'Joe Doe']

Nesse caso, mais uma vez, map faz o retorno dos valores obtidos,mas nesse caso não sendo mais números, recebe um único argumento (user) que representa um elemento no (users) array, (um objeto).

A função concatena as propriedades firstName e do objeto e retorna o resultado do primeiro e último nome.