Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

113
Visualizações
Reemplace NaN con otro personaje usando JavaScript

¿Puede decirme cómo reemplazar NaN con otro personaje? Hay variables a las que se les asigna algún valor numérico. Más adelante en la función, estas variables obtienen sus valores, que luego muestro en la tabl html e. Pero a veces alguna variable devuelve NaN .

Para solucionar esto, creé por separado una matriz con variables que ya tienen algunos valores. A continuación, comencé el ciclo. Si la condición devuelve NaN , entonces debe reemplazarse con "-" . Pero no funciona.

 var a, b, c, d, x1, x2, x3, x4; var elem = document.getElementById.bind(document); function iFunc() { a = 1; b = 3; c = 2; d = NaN; x1 = elem('a1').innerHTML = a; x2 = elem('b1').innerHTML = b; x3 = elem('c1').innerHTML = c; x4 = elem('d1').innerHTML = d; var arrX = [x1, x2, x3, x4]; for (var x of arrX) { if (x !== x) { x = "-"; // the character that was supposed to replace NaN console.log(x); } } } iFunc();
 <table> <tr> <td><span id="a1"></span></td> <td><span id="b1"></span></td> <td><span id="c1"></span></td> <td><span id="d1"></span></td> </tr> </table>

UPD: con .mapa()

 var a, b, c, d, x1, x2, x3, x4; var elem = document.getElementById.bind(document); function iFunc() { a = 1; b = 3; c = 2; d = NaN; x1 = elem('a1').innerHTML = a; x2 = elem('b1').innerHTML = b; x3 = elem('c1').innerHTML = c; x4 = elem('d1').innerHTML = d; var arrX = [x1, x2, x3, x4].map(n => n != n ? "-" : n); console.log(arrX); } iFunc();
 <table> <tr> <td><span id="a1"></span></td> <td><span id="b1"></span></td> <td><span id="c1"></span></td> <td><span id="d1"></span></td> </tr> </table>

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Está cambiando el valor devuelto por elem('d1').innerHTML que no afectará lo que hay en el DOM. Lo que está tratando de hacer de una manera simplificada:

 var a, b, c, d, x1, x2, x3, x4; var elem = document.getElementById.bind(document); function iFunc() { a = 1; b = 3; c = 2; d = NaN; elem("a1").innerHTML = a!=a ? "-" : a; elem("b1").innerHTML = b!=b ? "-" : b; elem("c1").innerHTML = c!=c ? "-" : c; elem("d1").innerHTML = d!=d ? "-" : d; } iFunc();
 <table> <tr> <td><span id="a1"></span></td> <td><span id="b1"></span></td> <td><span id="c1"></span></td> <td><span id="d1"></span></td> </tr> </table>

Para quienes sugieren usar isNaN , no es la mejor manera para todos los casos de uso, según MDN :

Alternativamente, en ausencia de Number.isNaN , la expresión ( x != x ) es una forma más confiable de probar si la variable x es NaN o no, ya que el resultado no está sujeto a los falsos positivos que hacen que isNaN no sea confiable.

about 4 years ago · Juan Pablo Isaza Relatório

0

Debe reemplazar el valor en la matriz. Actualmente solo está reemplazando el valor en la variable X.

Aquí hay una solución con un bucle for corregido:

 var a, b, c, d, x1, x2, x3, x4; var elem = document.getElementById.bind(document); function iFunc () { a = 1; b = 3; c = 2; d = NaN; var arrX = [x1, x2, x3, x4]; for (var index = 0; index < arrX.length; index++) { var x = arrX[index]; // first we extract the value from the array arrX[index] = isNaN( x ) ? "-" : x;//then we replace the value in the array console.log(arrX[index]) } x1 = elem('a1').innerHTML = a; x2 = elem('b1').innerHTML = b; x3 = elem('c1').innerHTML = c; x4 = elem('d1').innerHTML = d; } iFunc ();
 <table> <tr> <td><span id="a1"></span></td> <td><span id="b1"></span></td> <td><span id="c1"></span></td> <td><span id="d1"></span></td> </tr> </table>

about 4 years ago · Juan Pablo Isaza Relatório

0

Actualizar

un buen enfoque sería tener todos los valores en una matriz. entonces puede usar un bucle para reemplazar los valores de NaN. Luego, puede manejar la nueva matriz asignada como desee.

 const arr = [1, 3, 2, NaN].map(n => n != n ? "-" : n) console.log(arr)

respuesta anterior Puede verificar con la función isNaN() o n != n y, si es cierto, puede imprimir "-" . En su caso, envolvería este cheque en una función. Como esto:

 function checkNumber(n) { return n != n ? "-" : n; } 

 var a, b, c, d, x1, x2, x3, x4; var elem = document.getElementById.bind(document); function iFunc () { a = 1; b = 3; c = 2; d = NaN; x1 = elem('a1').innerHTML = checkNumber(a); x2 = elem('b1').innerHTML = checkNumber(b); x3 = elem('c1').innerHTML = checkNumber(c); x4 = elem('d1').innerHTML = checkNumber(d); var arrX = [x1, x2, x3, x4]; for (var x of arrX) { x = checkNumber(x); console.log(x); } } iFunc (); function checkNumber(n) { return n != n ? "-" : n; }
 <table> <tr> <td><span id="a1"></span></td> <td><span id="b1"></span></td> <td><span id="c1"></span></td> <td><span id="d1"></span></td> </tr> </table>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda