Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

185
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!