JSFiddle - React, Tailwind, and code Playground

by hescano

JavaScript

//ejercicio de google foobar 3
function answer(s, b) {
	var k = s.length;
	var x = toNumberArr(sort(s, 'desc'));
  var y = toNumberArr(sort(s));
  var z = parseInt(x, b) - parseInt(y, b);
  var n = z;
  return n.toString(b);
}

function sort(str, order) {
	var n = toIntArr(str);
	if (order === 'desc') {
  	return n.sort(function(a, b){return b-a});
  } else {
  	return n.sort(function(a, b){return a-b});
  }
}

function toIntArr(arr) {
	var n = [];
  for (var i = 0; i < arr.length; i++) {
  	n.push(Number(arr[i]));
  }
  return n;
}

function toNumberArr(arr) {
	return parseInt(arr.join(''));
}

function pad(n, k) {
	var str = n.toString();
  if (str.length < k) {
  	while (str.length !== k) {
    	str = '0' + str;
    }
  }
  return str;
}

var val = '210022';
var base = 3;
var values = [val];
var returnValue = 0;
while (true) {
	var newVal = answer(values[values.length - 1], base);
  if (values.indexOf(newVal) > -1) {
  	returnValue = values.length - values.indexOf(newVal);
  	break;
  }
  values.push(newVal);
}
alert(returnValue);