Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!