When removing a property from an object, I've used the delete operator in the past. But when I had my code reviewed by a person with a CS background, they wanted me to find another way of removing the property because it was an "expensive" task (not sure what that means). Since I'm self taught I wanted to ask if deleting in Js is something I should consider using as last resort? I've looked at other responses within SO like this but couldn't find anything that makes reference to this.
            Asked
            
        
        
            Active
            
        
            Viewed 3,618 times
        
    2
            
            
         
    
    
        Mix Master Mike
        
- 1,079
- 17
- 26
- 
                    If you find yourself wanting to delete properties, you probably want to use a [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map). Another possibility is that you might want to explore another approach entirely to the problem you're trying to solve, one that is expressed more naturally in JavaScript. – Patrick Roberts Oct 28 '20 at 21:24
- 
                    1Expensive means it requires more computing processes and takes a longer time to execute the code. I don't know if it's true or not, but even if it's expensive, I'm sure our machines can easily delete some keys.. – Bulent Oct 28 '20 at 21:26
- 
                    @BülentAkgül thanks for that tidbit of information – Mix Master Mike Oct 28 '20 at 21:27
2 Answers
4
            No, it's not considered bad practice. It just depends on what you want to do,
Read this thread: Garbage Collection and JavaScript "delete": Is this overkill/obfuscation, or a good practice?
 
    
    
        Fritiof Rusck
        
- 404
- 1
- 3
- 11
2
            
            
        The book "JavaScript, the Good Parts" by Douglas CrockFord says...
The delete operator can be used to remove a property from an object. It will remove a property from the object if it has one. It will not touch any of the objects in the proto- type linkage.
I think you can use the Delete operator without worries. There are many other ways to remove a property from an object, but all they are more expensive in my opinion.
 
    
    
        Pablo Darde
        
- 5,844
- 10
- 37
- 55