Error Digit Range

Problem


error-digit-range

My Solution

success
function findRange(num) {
	// Write your code here
	const strNum = num.toString();
	let [maximal, isMaxDone, minimal, isMinDone] = ['', false, '', false];

	if (strNum.split('').every((n) => +n === 1) && !isMinDone) {
		minimal = num;
		isMinDone = true;
	}

	if (strNum.split('').every((n) => +n === 9)) {
		maximal = num;
		isMaxDone = true;
	}

	for (let i = 0; i < strNum.length; i++) {
		if (+strNum[i] !== 9 && !isMaxDone) {
			let searchReg = new RegExp(strNum[i], 'gi');
			maximal = strNum.replace(searchReg, 9);
			isMaxDone = true;
		}

		if (+strNum[i] > 1 && !isMinDone) {
			if (i === 0) {
				let searchReg = new RegExp(strNum[i], 'gi');
				minimal = strNum.replace(searchReg, 1);
				isMinDone = true;
			} else {
				let searchReg = new RegExp(strNum[i], 'gi');
				minimal = strNum.replace(searchReg, 0);
				isMinDone = true;
			}
		}

		if (+strNum[0] === 1 && +strNum[i] !== 1 && !isMinDone) {
			let searchReg = new RegExp(strNum[i + 1], 'gi');
			minimal = strNum.replace(searchReg, 0);
			isMinDone = true;
		}
	}

	return +maximal - +minimal;
}