Моя цель кода состоит в том, чтобы распечатать второе по величине значение в массиве. Я изменил наибольшее значение до 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;
}
Код: Выделить всё
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
Мобильная версия