0

I want to organise the numbers (including duplicates) from randomNumbers in order from highest to lowest & insert them into organisedNumbers.

I think it is my while loop throwing it off but I don't understand why.

let randomNumbers = [9, 2, 6, 8, 52, 56, 7, 43, 56, 31, 48, 3, 6, 8, 4, 1, 3, 4, 5, 17, 25];
let organisedNumbers = [];

function unjumbleTwo(sourceArray, resultArray) {
  for (let i = 0, next = false; i < Math.max(...sourceArray); next === true) {
    next = false;
    let temp = sourceArray[sourceArray.indexOf(i)];
    while (typeof temp === 'number') {
      resultArray.push(temp);
    }
    next = true;
  }
};
unjumbleTwo(randomNumbers, organisedNumbers);
console.log(organisedNumbers);

Edit: 'i' never changed. Fixed and got rid of 'next === true, false'.

function unjumble(sourceArray,resultArray){
  for (let i = 0; i < Math.max(...sourceArray); i++){
    let temp = sourceArray[sourceArray.indexOf(i)];
    while (typeof temp === 'number'){
      resultArray.push(temp);
    }
  }
};
unjumble(randomNumbers,organisedNumbers);
console.log(organisedNumbers);
mplungjan
  • 169,008
  • 28
  • 173
  • 236
Tom Yemm
  • 53
  • 6

2 Answers2

-1

Just return it like this:

randomNumbers.sort((a,b) => a > b ? 1 : a < b ? -1 : 0);

oma
  • 1,804
  • 12
  • 13
-1

You can use sort function:

let randomNumbers = [9,2,6,8,52,56,7,43,56,31,48,3,6,8,4,1,3,4,5,17,25];
let organisedNumbers = randomNumbers.sort((a, b) => b - a);

console.log(organisedNumbers)
Rafał
  • 118
  • 1
  • 9