Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
¿Hay alguna diferencia entre bolsa= bolsa + n - i +1 y bolsa += n - i + 1

¿Hay alguna diferencia entre bag= bag + n - i +1 y bag += n - i + 1 bcs? Se muestra diferente al ejecutar un programa a continuación:

 var n = 5 for (i = 1; i <= n; i++) { var bag = "" for (j = 1; j <= n - i + 1; j++) { bag += n - j + 1 } console.log(bag) } // 2nd way var n = 5; // for (let i = 1; i <= n; i++) { var string = ""; for (let j = 1; j <= n - i + 1; j++) { string = string + n - j + 1; } console.log(string); }

Repetir enlace

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

bag = bag + n - i + 1 y bag += n - i + 1 no son lo mismo.

  • En el primero, la bag se obliga a un número
  • En este último, el resultado se convierte en una cadena.

La coacción se produce en el operador de resta:

 console.log('' + 1); //=> '1' console.log('' - 1); //=> -1

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sí, hay una diferencia. La diferencia tiene que ver con el orden en que se evalúan sus operadores:

 bag += n - i + 1

es lo mismo que:

 bag = bag + (n - i + 1) // string concatenation as `bag` is a string and we're using `+`

Observe que n - i + 1 está agrupado ( ( ) ) porque está en el lado derecho de += , por lo que se evalúa/calcula primero antes de concatenarse con la bag de cadenas. Las dos líneas de código anteriores son diferentes de su otra alternativa de:

 bag = bag + n - i +1

Aquí no hay agrupación, por lo que el orden en que se evalúan los operadores es diferente (ver precedencia de operadores ). Lo anterior es equivalente a:

 bag = (bag + n) - (i + 1) // (string) - (number)

... que con suerte puede ver dará resultados diferentes a los de las dos primeras líneas anteriores, ya que ahora está restando cantidades diferentes. Además, como estás usando la resta, tus resultados ahora serán números.

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Por qué?

Hay una diferencia porque está usando el operador "+" para la concatenación y está usando un "-" en la misma línea, por lo que JS está implícitamente cambiando cadenas y números por usted.

En el ejemplo de bag += n - j + 1 , JS evalúa todo en el lado derecho de izquierda a derecha. Luego, ese número se concatena al final de la cadena denominada bag .

En el ejemplo de bag = bag + n - j + 1 , JS nuevamente evalúa todo en el lado derecho de izquierda a derecha, pero ahora tenemos una mezcla de cadenas y números en el lado derecho, por lo que observa un comportamiento extraño. resultante del antipatrón.

Mira aquí:

 bag += n - j + 1 // => bag += 5 - 1 + 1 => bag += 5 => bag = "5" bag = bag + n - j + 1 // => bag = "" + 5 - 1 + 1 => bag = "5" - 1 + 1 => bag = 5

En el siguiente ciclo, con la segunda sintaxis, agregará un número en lugar de concatenar una cadena, que es lo que está causando su problema.

Solución

Para solucionar esto, técnicamente puede mantener la primera sintaxis, o puede encerrar los números entre paréntesis, así: bag = bag + (n - j + 1) , pero recomendaría considerar hacer sus moldes explícitos, como bag += String(n - j + 1) o bag = bag.concat(n - j + 1) y evite mezclar tipos de datos para garantizar que errores como estos no vuelvan a surgir.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda