# Why can't I use "return i"?

Instead of “return arr.length”, why can’t I use “return i” to get the results? Anybody can help me with this, thanks!

Question goes like this:

# Where do I Belong

Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted. The returned value should be a number.

For example, `getIndexToIns([1,2,3,4], 1.5)` should return `1` because it is greater than `1` (index 0), but less than `2` (index 1).

Likewise, `getIndexToIns([20,3,5], 19)` should return `2` because once the array has been sorted it will look like `[3,5,20]` and `19` is less than `20` (index 2) and greater than `5` (index 1).

``````  **Your code so far**
``````
``````
function getIndexToIns(arr, num) {
arr.sort((a, b) => a - b);
for (let i = 0; i < arr.length; i++){
if (arr[i] >= num){
return i
}
}
return arr.length;// why can't I use "return i", and why he use "return arr.length" to get the index of num?
}

getIndexToIns([40, 60], 50);
``````
``````  **Your browser information:**
``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36`

Challenge: Where do I Belong

Link to the challenge:

This is the flow of the code:
Sort the array and then go through every number and try to find a number that’s bigger than the number you need to insert. If you find such number then return the position of that number (`i`).
If you went through the whole array then it means that the number you must insert is bigger than any number in the array and you must insert it at the end position which is equal to array.length.

2 Likes

you can’t access `i` variable after `for loop` ending

so if you changed it to

``````return i;
``````

it would return nothing.

JavaScript Loops Explained: For Loop, While Loop, Do…while Loop, and More (freecodecamp.org)

You’re right, thanks

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.