JavaScript: перебрать массив до определенного индекса

Уважаемые, здравствуйте! Есть массив: [ 8, 0, 3, 1, 9, 10, 6, 4, 5, 2 ]

Мне нужно получить: [ 8, 0, 3, 1, 9, 10, 0, 0, 0, 0 ]

После максимального числа, остальные заменить на ноль.

Вот, что есть:

/*
 * В заданном массиве найти максимальный элемент. Элементы, стоящие после максимального элемента заменить нулями.
 */

// 1. Создаю масиив [0..10]
const minRange = 0
const maxRange = 10
const arrRangeNumber = []
for (i = minRange; i < maxRange +1; i++) {
  arrRangeNumber.push(i)
}

//2. Формирую массив из 10 чисел, выбранных случайным образом из интервала [0, 10].
const arrRandom = arrRangeNumber.sort(() => Math.random() - 0.5)
const setRange = 10
const filterResult = arrRandom.slice(0, setRange)

// 3. Нахожу максимальный элемент
let maxArrNum = filterResult[0]
let maxArrIndex = filterResult[0]
for (i = 0; i < filterResult.length +1; i++) {
  if (filterResult[i] > maxArrNum) {
    maxArrNum = filterResult[i]
  }
}

const totalArr = []
for (i of filterResult) {
  //
}

console.log('Исходный массив:', filterResult)
console.log('Максимальное значение:', maxArrNum)
console.log('Индекс максимального числа:', maxArrIndex)
console.log('Результат:', totalArr)

Ответы (2 шт):

Автор решения: Алексей Шиманский

let arr = [ 8, 0, 3, 1, 9, 10, 6, 4, 5, 2 ];
let maxNumber = Math.max(...arr);
let maxNumberIndex = arr.findIndex(el => el === maxNumber);
let newArr = [...arr.slice(0, maxNumberIndex), ...Array(arr.length - maxNumberIndex - 1).fill(0)];

console.log(newArr);

→ Ссылка
Автор решения: Sergey Glazirin

Сделал вариант попроще, через два цикла. Сделал еще копирование исходного массива, для того, чтобы не изменять исходный.

const nums = [8, 0, 3, 1, 9, 10, 6, 4, 5, 2];

const changeArray = (arr) => {
  const _arr = [...arr];
  let maxIndex = 0;
  let max = arr[0];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] >= max) {
      max = arr[i];
      maxIndex = i;
    }
  }

  for (let i = maxIndex + 1; i < arr.length; i++) {
    _arr[i] = 0;
  }

  return _arr;
}



console.log(changeArray(nums));

→ Ссылка