Переопределение значения массива заставляет мою логику о массивах сойти с умаJavascript

Форум по Javascript
Ответить
Anonymous
 Переопределение значения массива заставляет мою логику о массивах сойти с ума

Сообщение Anonymous »

Я не могу понять, что здесь происходит. < /p>
Моя цель кода состоит в том, чтобы распечатать второе по величине значение в массиве. Я изменил наибольшее значение до 0. < /Li>
< /ol>
Но когда я пытаюсь распечатать новое наибольшее значение во втором массиве, я не знаю, почему он не работает как первое.

Код: Выделить всё

let arr = [2, 3, 30, 3, 40, 4, 8, 70, 5, 2, 72, 5, 2];

function maxValue(nums) {
let max = 0;
let index;
for (let i = 0; i < nums.length; i++) {
if (nums[0] > nums[i]) {
max = nums[0];
index = i;
} else if (max < nums[i]) {
max = nums[i];
index = i
}
}

return max;
}
Здесь код, где я делаю Newarr с модификацией:

Код: Выделить всё

let newArr = arr.map(function(e, i) {
if (e === maxValue(arr)) {
e = 0;
}
return e;
});
< /code>
Вот полный код, который я использовал: < /p>


let arr = [2, 3, 30, 3, 40, 4, 8, 70, 5, 2, 72, 5, 2];

function maxValue(nums) {
let max = 0;
let index;
for (let i = 0; i < nums.length; i++) {
if (nums[0] > nums[i]) {
max = nums[0];
index = i;
} else if (max < nums[i]) {
max = nums[i];
index = i
}
}

return max;
}

console.log("the largest value: " + maxValue(arr));

let newArr = arr.map(function(e, i) {
if (e === maxValue(arr)) {
e = 0;
}
return e;
});

console.log("the second largest value: " + maxValue(newArr));


the results:

the largest value: 72
the second largest value: 5

I was expecting in the result in the second line to be: "Второе по величине значение: 72"
Я не знаю, чего мне не хватает в понимании проблемы здесь.

Подробнее здесь: https://stackoverflow.com/questions/796 ... s-go-crazy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»