解构具有相同名称属性的内部对象

大家好我有下面的对象结构,我正在尝试使用解构技术获取所有内部对象的名称但无法做到这一点,下面是对象结构


   {

       massingType {

            id

            name

        }

        ashraeClimateZone {

             id

            name

        }

        sourceOfData {

             id

             name    

        }

        .....

    } 

我正在做如下的解构


 constructionSetData.constructionSets.forEach(item => {

    if (

      item.ashraeClimateZone?.id === ashraeClimateZoneId &&

      item.massingType?.id === massingTypeId &&

      item.sourceOfData?.id === energyCodeId

    ) {

      matchedConstructionDataSet.push(item.name);

      const { sourceOfData: name, massingType: name, ashraeClimateZone: name } = item; // getting error here Identifier 'name' has already been declared 

    }

  });

  return matchedConstructionDataSet.length

    ? `${matchedConstructionDataSet.join(', ')}` // here i need to use above names coming from three inner objects

    : 'No construction set found with the current criteria';

任何人都可以让我知道我怎样才能实现这个解决方案,非常感谢!


慕勒3428872
浏览 100回答 1
1回答

呼啦一阵风

使用解构赋值,您可以重命名任何解构变量。您目前正在重命名每个“根”键,因为name这会导致重复声明,但您似乎真的想访问和解构name每个键的嵌套属性。const {  sourceOfData: {    name: sourceOfDataName,  },  massingType: {    name: massingTypeName,  },  ashraeClimateZone: {    name: ashraeClimateZoneName,  },} = item;仅考虑第一个解构值,上面解构赋值sourceOfData自itemdestructure 将name属性分配给sourceOfDataName.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript