Skip to main content

Javascript.Map

12th October, 2022

Updated: 12th October, 2022

    Export object from map

    const individualDesignations = features.filter((feature) => {
          const duplicate = seen.has(feature.properties.Designatio);
          seen.add(feature.properties.Designatio);
          return !duplicate;
        });
    
        const allDesignations = individualDesignations.map((designation) => {
          return {
            name: designation.properties.Designatio,
            category: designation.properties.layer,
            isChecked: true,
          };
        });
    
        const designationNames = allDesignations.map(
          (designation) => designation.name
        );
    
        setDesignations(allDesignations);
        setCheckedDesignationLayers(designationNames);
    
        return allDesignations;
      };

    Other Example

    const allSubcategoryDesignations = individualDesignations
        .filter((feat) => feat.properties.layer !== feat.properties.Designatio)
        .map((designation) => {
            // we're going through all the unique (by layer and designatio) designations here
            // for each one we want to find the correct subcategory data under the correct category
            // find out alternative names for it so that the Designatio becomes a proper subcategory.
            // we only want categories incuded that exist in our CATEGORIES constant
            const categoryInfo = CATEGORIES.find((category) => category.title === designation.properties.layer);
            if (categoryInfo !== undefined) {
                const category = designation.properties.layer;
                const subcategory = designation.properties.Designatio;
                // get all the possible subcategories for this category
                const subcategories = categoryInfo.hasOwnProperty('subcategories') ? categoryInfo.subcategories : [];
                const subcategoryInfo = subcategories.find((subcat) => subcat.title === subcategory)
                const isChecked = subcategoryInfo && subcategoryInfo.hasOwnProperty('isChecked') ? subcategoryInfo.isChecked : true;
                const order = subcategoryInfo && subcategoryInfo.hasOwnProperty('order') ? subcategoryInfo.order : -1;
                return {
                    layer: designation.properties.layer,
                    Designatio: designation.properties.Designatio,
                    category: category,
                    subcategory: subcategory,
                    isChecked: isChecked,
                    order: order,
                    isTopLevel: false
                };
            }
            return {}
        }).filter(value => Object.keys(value).length !== 0);
    
    setDesignations([...allSubcategoryDesignations, ...allTopLevelDesignations]);
    setCheckedDesignations([...allSubcategoryDesignations, ...allTopLevelDesignations]);
    return [...allSubcategoryDesignations, ...allTopLevelDesignations];

    70f388e1-37c1-4a34-8459-d2a9dfcf8802

    Created on: 12th October, 2022

    Last updated: 12th October, 2022

    Tagged With: