The following code is intended to remove the lowest number from an array of integers (numbers). I can't for the life of me understand why it is returning an array that is effected by the .sort().reverse().pop();
.
I would have thought that assigning var numbersTest
to numbers
would mean that numbers itself would be unaffected by the aforementioned methods.
Can anyone please shed some light of this javaScript functionality?
function removeSmallest(numbers) {
var numbersTest = numbers;
var lowestNum = numbersTest.sort().reverse().pop();
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] === lowestNum) {
numbers.splice(i, 1);
}
}
return numbers;
}
removeSmallest([1,2,3,4,5]);
This function returns [5, 4, 3, 2]
I want [2,3,4,5]