Quiero algo como esto y me gustaría saber si esto es posible en JavaScript en una línea, o tengo que escribir una declaración if
// these versions adds fasle to the array if condition = false let arr = await getArray(params).push(condition && itemToAdd); arr = await getArray(params).push((() => condition && itemToAdd)()); // this version adds undefined to the array if condition = false arr = await getArray(params).push((() => { if (condition) return itemToAdd })()); (La razón por la que incluí la parte getArray es porque así es como se ve en mi código y en realidad no guardo esta matriz en un var arr , solo se devuelve de inmediato a su función de llamada, por eso no quiero agregue una línea para la instrucción if...)
No estoy seguro de por qué quieres hacerlo en una sola línea, pero esto puede funcionar
let arr = [...await getArray(), itemToAdd].slice(0, condition ? undefined : -1); Aquí estamos presionando itemToAdd en la matriz independientemente de la condición, pero eliminamos el último elemento ( itemToAdd ) si la condición es falsa.
si está trabajando con reactjs, puede usar useState para las condiciones
const [isCondition, setisCondition] = useState(false);// pero necesita if/else para cambiar useState
if(this_happens) {setisCondition(verdadero) } else { setisCondition(falso) }
// puedes hacerlo como te gusta
let arr = await getArray(params).push(isCondition && itemToAdd);