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

133
Vistas
Implementando pseudocódigo en JavaScript

Soy bastante nuevo en JavaScript y estoy tratando de implementar mi código en pseudocódigo en JavaScript, sin embargo, no obtengo el resultado que se supone que debo obtener. Quiero que la función permute los elementos de la matriz p lugares a la izquierda. En pseudocódigo, estoy usando una estructura de datos de cola, pero pensé que también podía usar una matriz. Como resultado de mi función, obtengo una matriz con [2, 2, 2, 2]. ¿Puedes ayudarme?

Mi código en pseudocódigo :

 Function PERMUTEVECTOR(row, p) If p=0 then Return row End if New Queue q For 0<= i <4 do ENQUEUE[row[i], q] End for For 1<= i <= p do ENQUEUE[HEAD[q],q] DEQUEUE[q] End for For 0<=i<4 do Row[i] <- HEAD[q] DEQUEUE[q] End for Return row End function

Mi código en JavaScript :

 function permute_vector(row, p) { if (p=0) {return row} let q = new Array() for (i=0; i<4; i++) { q.push(row[i]) } for (i=0; i<p; i++) { q.push(q[0]) q.pop() } for (i=0; i<4; i++) { row[i] = q[0] q.pop() } return row } px = permute_vector([2,4,1,3], 1) console.log("px is:", px) }

Hice lo mismo en Python y funciona bien:

 def permute_vector(row, p): if p==0: return row q = [] for i in range(4): q.append(row[i]) for i in range(p): q.append(q[0]) q.pop(0) for i in range(4): row[i] = q[0] q.pop(0) return row

¿Qué estoy haciendo mal con mi código JavaScript ?

¡Muchas gracias!

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

0

En javascript, Array.pop() elimina el último elemento. Necesita Array.shift() para eliminar el primero.

 function permute_vector(row, p) { if (p===0) // in js, checks are with == (loose) or === (strict). // = is for assignment and you were assigning p to 0 here. {return row} let q = new Array() for (i=0; i<4; i++) { q.push(row[i]) } for (i=0; i<p; i++) { q.push(q[0]) q.shift() // shift instead of pop } for (i=0; i<4; i++) { row[i] = q[0] q.shift() // shift instead of pop } return row } px = permute_vector([2,4,1,3], 1) console.log("px is:", px) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Dos errores:

  • Las comparaciones necesitan signos iguales dobles o triples. De hecho, debería preferir el triple de signos iguales como puede leer en esta pregunta/respuesta .
  • En python pop() acepta un índice para eliminar un elemento específico. Estás haciendo uso de eso para eliminar el primer elemento. En JavaScript Array.pop() simplemente es capaz de eliminar el último elemento. Use Array.shift() para eliminar el primer elemento.

Código de trabajo:

 function permute_vector(row, p) { if (p === 0) { return row; } let q = new Array(); for (i = 0; i < 4; i++) { q.push(row[i]); } for (i = 0; i < p; i++) { q.push(q[0]); q.shift(); } for (i = 0; i < 4; i++) { row[i] = q[0]; q.shift(); } return row; } px = permute_vector([2, 4, 1, 3], 1); console.log("px is:", px);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Ahora, cuando lo tengas, puedes deshacerte de todo y reemplazarlo con

 vec[n:] + vec[:n] (Python) [...vec.slice(n), ...vec.slice(0, n)] (JS)

Los algoritmos básicos de los libros de texto rara vez son útiles en los lenguajes de secuencias de comandos, porque implementan cosas como esta de forma inmediata.

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