Dynamic Key Assignment

PHOTO EMBED

Tue Dec 17 2024 06:25:37 GMT+0000 (Coordinated Universal Time)

Saved by @davidmchale

const array = [
    {
        "name": "Qualification Level",
        "categoryDefinitions": [
            {
                "facetName": "Qualification Level",
                "data": "qualLevel",
                "label": null,
                "subCategories": [],
                "queryStringCategoryExtraPart": "qualLevel",
                "metadataClass": "qualLevel",
                "allQueryStringParamNames": [
                    "f.Qualification Level|qualLevel"
                ],
                "queryStringParamName": "f.Qualification Level|qualLevel"
            }
        ],
        "selectionType": "MULTIPLE",
        "constraintJoin": "OR",
        "facetValues": "FROM_SCOPED_QUERY_WITH_FACET_UNSELECTED",
        "order": [
            "CATEGORY_DEFINITION_ORDER",
            "LABEL_ASCENDING"
        ],
        "allQueryStringParamNames": [
            "f.Qualification Level|qualLevel"
        ]
    },
    {
        "name": "Delivery Mode",
        "categoryDefinitions": [
            {
                "facetName": "Delivery Mode",
                "data": "deliveryMode",
                "label": null,
                "subCategories": [],
                "queryStringCategoryExtraPart": "deliveryMode",
                "metadataClass": "deliveryMode",
                "allQueryStringParamNames": [
                    "f.Delivery Mode|deliveryMode"
                ],
                "queryStringParamName": "f.Delivery Mode|deliveryMode"
            }
        ],
        "selectionType": "MULTIPLE",
        "constraintJoin": "OR",
        "facetValues": "FROM_SCOPED_QUERY_WITH_FACET_UNSELECTED",
        "order": [
            "CATEGORY_DEFINITION_ORDER",
            "LABEL_ASCENDING"
        ],
        "allQueryStringParamNames": [
            "f.Delivery Mode|deliveryMode"
        ]
    }
 
]

const getValues = array.reduce((total, item) => {
  const name = item?.name;
  const value = item?.allQueryStringParamNames[0];
  
  if (name && value) {
    total[name] = value;
  }
  
  return total;
}, {});


total[name] = value; anthing in [] is dynamic
content_copyCOPY