Вызов или доступ к вложенной константе внутри переменной в Javascript

#javascript #node.js #variables

#язык JavaScript #node.js #переменные

Вопрос:

я новичок в JavaScript, но мне нужна помощь, я могу получить доступ или вызвать из внешних переменных внутри блока константный ? от код в нижней части, мне нужно получить доступ к layerAttributes котором переменная находится внутри addAttributes блок, я пытаюсь консоли.журнал(layerAttributes); внутри блока работает, но я не знаю, как это назвать из-за пределов блока, большой признателен за помощь и благодарю заранее.

 const addAttributes = (_element) =gt; {  let selectedElement = _element.layer;  const layerAttributes = {  trait_type: _element.layer.trait,  value: selectedElement.traitValue,  ...(_element.layer.display_type !== undefined amp;amp; {  display_type: _element.layer.display_type,  }),  };  console.log(layerAttributes);  if (  attributesList.some(  (attr) =gt; attr.trait_type === layerAttributes.trait_type  )   )  return;  attributesList.push(layerAttributes); };  

Комментарии:

1. Не похоже, что вы возвращаете значение… почему бы не вернуть его?

Ответ №1:

Насколько я понял, вы хотите иметь доступ к атрибутам слоев извне блока, вы можете объявить его снаружи, а затем использовать внутри блока const и снаружи, как это:

 let layerAttributes = {}; //declared outside the block    const addAttributes = (_element) =gt; {  let selectedElement = _element.layer;  layerAttributes = { //accessed inside the block  trait_type: _element.layer.trait,  value: selectedElement.traitValue,  ...(_element.layer.display_type !== undefined amp;amp; {  display_type: _element.layer.display_type,  }),  };  console.log(layerAttributes);  if (  attributesList.some(  (attr) =gt; attr.trait_type === layerAttributes.trait_type  )   )  return;  attributesList.push(layerAttributes);    }; //end of block   console.log(layerAttributes); //accessed outside the block  

скажи мне, это то, что ты имел в виду

Комментарии:

1. Вы не можете выполнить задание для const А. Вы можете либо сделать это let , либо использовать что-то вроде Object.assign(layerAttributes, { trait_type: ... }) добавления свойств без назначения.

2. Да, верно @David784

3. Большое спасибо @YESSINE за ответ, приношу извинения за неполный вопрос, мне нужен доступ к данным внутри атрибутов слоев, мне нужно получить доступ к ним из-за пределов блока, ваш код работает как заклинание, но когда я вызываю данные атрибутов слоев из-за пределов блока, никакой ошибки и по-прежнему никаких данных не возвращается, когда я пытаюсь с помощью консоли. войдите из — за пределов блока.