Как просчитать минимальные шаги, в результате которого, числа внутри массива будут упорядочены по возрастанию

function getSteps(arr) {
	//  делаем копию массива чтобы наши изменения массива
	//  не повлияли на значения в массиве из аргумента
	var arrCopy = arr.slice() 
	var steps = 0
	// начинаем со второго элемента массива, и "оглядываемся"
	// на предыдущий. Сравниваем числа чтобы понять в порядке
	// возрастания ли они и на сколько нужно изменить
	// рассматриваемое число чтобы понять чтобы 
	for (var i = 1; i < arrCopy.length; i += 1) {
		var prev = arrCopy[i-1]
		var current = arrCopy[i]
		if (current > prev) {
			// ничего не надо делать, числа уже в
			// возрастающем порядке
		} else {
			// считаем на сколько числа разнятся. Эта разница + 1 и
			// будет количество шагов за сколько можно изменить значение
			var diff = prev - current + 1
			// Для массива [10, 8] разница будет 2, добавляем 1 и
			// получаем что к 8 нужно добавить 3 (в соответственно
			// 3 шага из + 1 чтобы число стало гарантированно больше 10)
			steps += diff
			// Заменяем число в копии массива чтобы на следующей
			// итерации работать уже с ним а не с оригинальным
			arrCopy[i] = current + diff
		}
	}
	return steps
}