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

296
Vistas
¿Existe un equivalente JS de la asignación de variables múltiples de Python?

Python tiene una forma sucinta de asignar una función con un parámetro a múltiples variables, hecho como una sola línea. Me gustaría saber si JavaScript tiene la misma forma o una forma similar de hacerlo.

He encontrado varios ejemplos que describen múltiples asignaciones de variables para JavaScript, usando múltiples asignaciones y Destructuring. El problema con estos métodos es que pueden, o requieren, la igualdad de variable a valor: let a = b = c = some_value , o let [a, b] = [x, y] . Aquí es donde tengo un problema con una parte particular del código.

Pitón

 #!/usr/bin/env python3 def numbers(arr): if len(arr) <= 1: return arr left_half, right_half = divide(arr) # The code in question; Multi-variable assignment return left_half, right_half def divide(arr): mid = len(arr) // 2 left = arr[:mid] right = arr[mid:] return left, right l = [12, 45, 9, 2, 5] print(numbers(l)) # ...([12, 45],[9, 2, 5])

JavaScript

 function numbers(arr) { if (arr.length <= 1) { return arr; } let leftHalf, rightHalf = divide(arr); // The not-so-equivalent code return leftHalf, rightHalf; } function divide(arr) { let mid = Math.floor(arr.length / 2); let left = arr.slice(0, mid); let right = arr.slice(mid); return left, right; } const l = [12, 45, 9, 2, 5]; console.log(numbers(l)); // ...[9, 2, 5]

¿Cómo se puede lograr el mismo patrón o un patrón similar al de Python en el código JavaScript?

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

0

En la pregunta, usted afirma que no puede usar Destructuring. Sin embargo, Destructuring, más precisamente, unpatrón de enlace de desestructuración de matriz es exactamente la herramienta adecuada para usar aquí, por lo que realmente debería usarla. (Bueno, excepto por el hecho de que es redundante, pero hablaremos de eso más adelante).

Así es como haría una traducción 1: 1 del código Python (bueno, excepto por el hecho de que ECMAScript no tiene tuplas) a ECMAScript:

 function numbers(arr) { if (arr.length <= 1) { return arr; } const [leftHalf, rightHalf] = divide(arr); return [leftHalf, rightHalf]; } function divide(arr) { const mid = Math.floor(arr.length / 2); const left = arr.slice(0, mid); const right = arr.slice(mid); return [left, right]; }

La única diferencia del código ECMAScript en comparación con el código Python es que en el código Python, tanto los numbers como la divide devuelven una tupla , mientras que ECMAScript no tiene tuplas, por lo que, en el código ECMAScript, devuelven matrices .

Sin embargo, tenga en cuenta que tanto en la versión de Python como en la de ECMAScript, los numbers desestructuran el valor de retorno de divide , solo para volver a colocarlo con exactamente la misma estructura de datos, por lo que puede deshacerse de la mayor parte de ese código:

 function numbers(arr) { if (arr.length <= 1) { return arr; } return divide(arr); }
 def numbers(arr): if len(arr) <= 1: return arr return divide(arr)

También notará que cambié todas sus variables a const s en el código ECMAScript, ya que no está modificando sus enlaces.

Sin embargo, esta API es extraña y difícil de usar, porque la función de numbers devuelve dos cosas completamente diferentes según la longitud de la matriz de argumentos. Devuelve una matriz de números o una matriz de matrices de números (en ECMAScript, en Python, devuelve una tupla de matrices de números). Esto hace que sea más difícil de usar para la persona que llama, ya que los diferentes tipos de devolución deben tratarse de manera diferente.

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