Search code examples
javascriptarrayshasownproperty

Removing duplicates in array in javaScript using hasOwnProperty


I have an array with duplicate elements. While trying to remove duplicate elements using hasOwnProperty getting one duplicate element in array rest of duplicate element removed successfully. expexted output = [1, 3, 2, 4, 5, 6, 7] but getting something [1, 3, 2, 3, 4, 5, 6, 7]. I can use different function and remove duplicates but I'm not understanding why element 3 is coming twice.

var array = [1,3,2,1,3,4,5,6,7,3,5,6,4,3]
let output = []

function removeDuplicates(array){

for(let item of array){
    
    if(!output.hasOwnProperty(item))
      output.push(item)
}

return output

}
console.log(removeDuplicates(array));



Solution

  • hasOwnProperty checks whether an object contains a given key. The correct way to check if an array contains an element is to use includes:

    if(!output.includes(item))
      output.push(item)