There is a function:
toggleSelect(key: string, object: RegistryLayerItemGeneric, selected: boolean) { if (selected) { let objects = this.state.selectedRegistryObjects.get(key); if (objects && object.ObjectId in objects) { delete objects[object.ObjectId]; } this.state.selectedRegistryObjects.set(key, { ...objects, }); return; } const objects = { ...(this.state.selectedRegistryObjects.get(key) || {}), ...{ [object.ObjectId]: object }, }; this.state.selectedRegistryObjects.set(key, objects); }
This function deletes element in map and adds if not exist. How can I improve it? I think this functon complecated for understanding.
Advertisement
Answer
That is definitely a complicated function.
Here’s a simpler version
toggleSelect(key: string, object: RegistryLayerItemGeneric, selected: boolean) { const objects = (this.state.selectedRegistryObjects.get(key) || {}); if (selected) { delete objects[object.ObjectId]; } else { objects[object.ObjectId] = object; } this.state.selectedRegistryObjects.set(key, {...objects}); }
I don’t have a typescript environment in front of me, so can’t confirm whether it passes all the typescript noise, but this will work from a javascript perspective.