var dn = prompt("Enter a number: "); var bn = new Array(); var i = 0; var binary = []; while (dn != 0) { bn[i] = dn % 2; dn = Math.floor(dn / 2); i++; } for (var j = i - 1; j >= 0; j--) { binary.push(bn[j]); } console.log(binary.join("")); var currentGap = 0; var gaps = []; var len = binary.length; for (var k = 0; k < len; k++) { if (binary[k] == 0) { currentGap++; if (binary[k + 1] == 1) { gaps.push(currentGap); currentGap = 0; } } } console.log(Math.max(...gaps));Puede agregar inicializar espacios con 0, o agregar una condición cuando los espacios permanezcan vacíos para imprimir 0 o el máximo de espacios.
var dn = prompt("Enter a number: "); var bn = new Array(); var i = 0; var binary = []; while (dn != 0) { bn[i] = dn % 2; dn = Math.floor(dn / 2); i++; } for (var j = i - 1; j >= 0; j--) { binary.push(bn[j]); } console.log(binary.join("")); var currentGap = 0; //var gaps = [] var gaps = [0]; var len = binary.length; for (var k = 0; k < len; k++) { if (binary[k] == 0) { currentGap++; if (binary[k + 1] == 1) { gaps.push(currentGap); currentGap = 0; } } } //if (gaps.length === 0) // console.log(0) //else // console.log(Math.max(...gaps)); console.log(Math.max(...gaps));Simplemente puede imprimir 0 si su matriz de espacios no tiene longitud.
var dn = prompt("Enter a number: "); var bn = new Array(); var i = 0; var binary = []; while (dn != 0) { bn[i] = dn % 2; dn = Math.floor(dn / 2); i++; } for (var j = i - 1; j >= 0; j--) { binary.push(bn[j]); } console.log(binary.join("")); var currentGap = 0; var gaps = []; var len = binary.length; for (var k = 0; k < len; k++) { if (binary[k] == 0) { currentGap++; if (binary[k + 1] == 1) { gaps.push(currentGap); currentGap = 0; } } } console.log(gaps.length ? Math.max(...gaps) : 0); // <-- ThisPido disculpas si estoy malinterpretando su pregunta, pero ¿esto resolvería su problema?
const s = prompt("Enter a number:"); const longest = Math.max(...parseInt(s).toString(2).split('1').map(s=>s.length)); console.log(longest);