1

I want to create an empty array and then put 5 consecutive numbers in it, each one twice. And then sort them by starting from the lowest For example: let array = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]

  • Familiarize yourself with [how to access and process nested objects, arrays or JSON](/q/11922383/4642212) and use the available static and instance methods of [`Array`](//developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array#Static_methods). – Sebastian Simon Aug 05 '21 at 10:54
  • Alright and what have you tried so far? SO isn't a free coding service. Check out [How to Ask](https://stackoverflow.com/questions/how-to-ask) and [Minimal, Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) for more information – Reyno Aug 05 '21 at 10:55
  • I know how to push 5 consecutive numbers and sort them but I don't know how to put each number twice – Ali Sherifov Aug 05 '21 at 10:59

2 Answers2

1

This is supposed to be fairly simple with a while loop:

int index = -1;
int endCount = 9; //this can be any number you want       

while(index <= endCount){

    list.add(index++); //your list
    list.add(index);

}

It's a simple while loop concept.

Dstarred
  • 321
  • 2
  • 10
0

We could use Array.from() and Array.flatMap() to create the desired result. First we create our range of numbers, e.g. 1 -> 9 from the start and end values, then we use .flatMap() to create our duplicated numbers.

We'd wrap this up in a function getDuplicatedRange(), with the start and end parameters:

function getDuplicatedRange(start, end) {
    // Create our initial range, e.g. 1,2,3,4,5...
    let range = Array.from( { length: end - start + 1}, (_,index) => index + start)
    // Now duplicate each number...
    return range.flatMap(n => [n,n]);
}

console.log('Range 1:', JSON.stringify(getDuplicatedRange(1,9)))
console.log('Range 2:', JSON.stringify(getDuplicatedRange(1,5)))
  
Terry Lennox
  • 29,471
  • 5
  • 28
  • 40