Estoy tratando de hacer que el valor de propiedad de un objeto sea dinámico en función de una condición dada.
Por ejemplo, el valor de la propiedad se convertiría en Red si el ancho de la ventana gráfica es <= 1280 , de lo contrario, sería Yellow .
Estoy tratando de usar la declaración if...else pero muestra un error: SyntaxError: missing ) after formal parameters .
const firstData = { if (document.documentElement.clientWidth <= 1280) { apple: 'Red' } else { apple: 'Yellow' } }; // Or const secondData = { apple: if (document.documentElement.clientWidth <= 1280) { return "Red" } else { return "Yellow" } }; console.log(firstData, secondData);Use un operador ternario para hacerlo más limpio.
const data = { apple: document.documentElement.clientWidth <= 1280 ? "Red" : "Yellow", }; console.log(data);Si desea una condición de línea, la respuesta anterior es la mejor, pero con más condiciones puede hacer algo o definir la función en otro lugar y luego ejecutarla
const obj = { apple: (() => { if (document.documentElement.clientWidth <= 1280) { return 'Red'; } else { return 'Yellow'; } })(), };o incluso puede definir propiedades dinámicas
const obj = { ...(() => { if (document.documentElement.clientWidth <= 1280) { return { color: 'Red' }; } else { return { color1: 'Yellow' }; } })(), color3: 'red', }; console.log(obj);No puede usar la declaración como valor de objeto. En lugar de esto, puede usar el operador ternario .
const object = { apple: document.documentElement.clientWidth <= 1280 ? 'Red' : 'Yellow', }