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

93
Vistas
Envía algunos o todos los parámetros a una función basada en una condición

Estoy pasando un conjunto de parámetros a la siguiente función.

 postData( param1, param2, param3, param4, param5, param6 );

Pero solo quiero pasar todos los parámetros si se cumple una determinada condición. De lo contrario, solo quiero enviar los primeros 3 parámetros.

Podría hacer algo como lo siguiente.

 const condition = // true or false; if (condition) { postData( param1, param2, param3, param4, param5, param6 ); } else { postData( param1, param2, param3 ); }

Pero, ¿hay una forma más elegante de hacer esto en lugar de esto en Javascript?

Actualizar:

 const postData = (item1, item2, item3, item4, item5, item6) => { return `${item1} ${item2} ${item3} ${item4} ${item5} ${item6}`; } const check = true; const appDiv = document.getElementById('app'); appDiv.innerHTML = `${postData('param1', 'param2', 'param3', ...check ? ['param4, param5, param6'] : [] )}`;

Cuando la condición es verdadera, termina imprimiendo lo siguiente:

 param1 param2 param3 param4, param5, param6 undefined undefined
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Aquí hay un ejemplo de trabajo SECO :

Si el orden de sus parámetros es como lo describió, entonces:

 const params = [param1, param2, param3, param4, param5, param6]; postData(...params.slice(0, condition ? 99 : 3)); // large-enough number

Como puede ver, esto simplemente toma la matriz (de parámetros) y usar el resto juntos dividirá solo los que necesita y los usará como una cadena de parámetros.

Alternativamente, otro método SECO sería:

 console.log( ...[1,2,3].concat(true ? [4,5] : []) ) console.log( ...[1,2,3].concat(false ? [4,5] : []) ) // first method, where order of the array of params is fixed: console.log( ...[1,2,3,4,5].slice(0, true ? 99 : 3) ) console.log( ...[1,2,3,4,5].slice(0, false ? 99 : 3) )

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar el operador de descanso ( ... ) y matrices para hacerlo:

 const params = [param1, param2, param3, param4, param5, param6]; if (condition) { postData(...params); } else { postData(...params.slice(0, 3)); // slice out the first 3 parameters }

Tenga en cuenta que este método no es del todo equivalente, ya que todos los parámetros se evaluarán inmediatamente para formar la matriz inicial, por lo que los cálculos costosos/con estado pueden comportarse de manera diferente. Algo que se comportaría de manera más similar podría verse así:

 postData(param1, param2, param3, ...condition ? [param4, param5, param6] : []);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar operadores condicionales:

 condition ? functionIfConditionIsTrue(params) : functionIfConditionIsFalse(params);

Y otro ejemplo son los 3 puntos en los parámetros de función:

 let params = [param1, param2, param3, param4, param5, param6]; (condition ? postData(...params) : postData(...params.slice(0, 3));

Más información sobre operadores condicionales en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

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