Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
reduce the size of a javascript array while keeping members that are evenly distributed in the original

Hard to put into words but I am looking for a function that takes an array and reduces it down to a given size. The use case is specifying ticks for graph in d3.

 const availableDatetimes: Date[] = [...]
 const numberOfXTicks = chartWidth / 80
 const tickValues = reduceArrSize(availableDatetimes, numberOfXTicks)

the result should have evenly distributed dates

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

I called it shrinkArray(), because reducing an array is the name of a different well-defined operation. Here it is:

const shrinkArray = (array, size) => {
    const step = array.length / size
    return array.filter((v, i) => Math.floor(i % step) == 0)
}

Let's shrink an array of size 100 to size 33:

const originalArray = (new Array(100).fill(0)).map((v, i) => i)

const shrunkenArray = shrinkArray(originalArray, 33)
console.log(shrunkenArray);
console.log(shrunkenArray.length == 33);

So:

[
   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11,
  12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  96, 97, 98, 99
]

is shrunken to:

[
   0,  4,  7, 10, 13, 16, 19, 22, 25,
  28, 31, 34, 37, 40, 43, 46, 49, 53,
  56, 59, 62, 65, 68, 71, 74, 77, 80,
  83, 86, 89, 92, 95, 98
]

that is of size 33.

In this example the array is integers from 0 to 99, but obviously the function works for any data type.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda