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

224
Views
Javascript check if numbers in an array are consecutive and store them?

I have an array like this:

arr = [1,3,4,5,7,8]

I need to check if the next number is consecutive to the current number and, if it is, store both together otherwise i store the single number in an array.

The above array should give the following result:

newArray = [1, 345, 78]

I tried a simple solution and only achieve what i wanted if was only 2 consecutive numbers:

for (i = 0; i < array.length; i++) {
    if (array[i] === array[i - 1] + 1) {
        newArray.push(array[i - 1] + array[i]);
    } else {
        newArray.push(array[i]);
    }
}

And when i tried to do for more numbers things got very messy.

I know this doesnt look like a major problem, but i am trying this for hours and cant find the result.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You can do something like this

const arr = [1,3,4,5,7,8]

const groupConsecutive = arr => {
 const result = arr.reduce((res, n) => {
  if(n - res.prev === 1){
    return {
      prev: n,
      current: [...res.current, n.toString()],
      total: res.total
    }
  }
  return {
    prev: n,
    current: [n.toString()],
    total: [...res.total, res.current]
  }

}, {prev: '', current: [], total: []})
 return [...result.total, result.current].flatMap(n => Number(n.join('')))
}

console.log(groupConsecutive(arr))

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!