Soy realmente nuevo en la programación y mis preguntas no son muy buenas. Perdóneme si estoy perdiendo el tiempo. ¿Por qué cuando uso etiquetas indirectamente en DatatoBarChartJS (usando una "etiqueta") funciona?
const DataFromDataBase = { label :['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets : [ {datasetName:'Dataset 1', data:[1,3,5,2,5,2,6]},{datasetName:'Dataset 2', data:[4,6,5,2,5,2,6]} ], } const label =dataFromDataBase.label; const color = tinycolor(); const DatatoBarChartJS = { label, datasets : dataFromDataBase.datasets.map((dataset)=>{ return{ label:dataset.datasetName, data : dataset.data, backgroundColor:color.toRgbString , } } ) }pero cuando lo uso incorrectamente no funciona?
const DataFromDataBase = { label :['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets : [ {datasetName:'Dataset 1', data:[1,3,5,2,5,2,6]},{datasetName:'Dataset 2', data:[4,6,5,2,5,2,6]} ], } const label =dataFromDataBase.label; const color = tinycolor(); const DatatoBarChartJS = { DataFromDataBase.label, datasets : dataFromDataBase.datasets.map((dataset)=>{ return{ label:dataset.datasetName, data : dataset.data, backgroundColor:color.toRgbString , } } ) }el problema es problema
Al crear un objeto con la sintaxis de corchetes, generalmente debe proporcionar el nombre de los campos y su valor asociado.
const cat = { cute: true, legCount: 4, sound: 'miaw' };Dependiendo de qué "versión de Javascript" esté usando, hay una sintaxis abreviada que puede usar:
const cute = true; const legCount = 4; const sound = 'miaw'; const cat = { legCount, sound, cute }Al hacer esto, el nombre del campo será el nombre de la variable y el valor del campo será el valor de la variable.
La razón por la que no puede usar esa sintaxis en su caso es porque a lo que hace referencia no es una variable, es un campo dentro de un objeto. Y tiene sentido, porque el resultado sería ambiguo:
// Would the result be this? { DatatoBarChartJS: { label: ['January', 'February', 'March', 'April', 'May', 'June', 'July'] } } // Or this? { 'DatatoBarChartJS.label': ['January', 'February', 'March', 'April', 'May', 'June', 'July'] } // Or this? { label: ['January', 'February', 'March', 'April', 'May', 'June', 'July'] }Puede encontrar más información en la documentación de inicialización de objetos de Mozilla.