ArticleZip > Create Array Of Unique Objects By Property

Create Array Of Unique Objects By Property

Creating an array of unique objects based on a specific property value can be a handy technique in software development. It allows you to efficiently manage and organize data by eliminating duplicate entries. In this article, we will explore how to achieve this in JavaScript.

To begin, let's consider a scenario where you have an array of objects, and you want to create a new array that contains only unique objects based on a specific property value. For instance, let's say we have an array of cars, and we want to filter out cars with the same "model" property.

The first step is to define our initial array of objects. Here's an example array to work with:

Js

const cars = [
    { brand: 'Toyota', model: 'Corolla' },
    { brand: 'Honda', model: 'Civic' },
    { brand: 'Toyota', model: 'Corolla' },
    { brand: 'Ford', model: 'Mustang' },
    { brand: 'Honda', model: 'Accord' }
];

Now, let's write a function that takes this array and returns a new array containing only unique objects based on the "model" property:

Js

function filterUniqueObjects(array, property) {
    const map = new Map();
    return array.filter(obj => !map.has(obj[property]) && map.set(obj[property], 1));
}

const uniqueCars = filterUniqueObjects(cars, 'model');
console.log(uniqueCars);

In this function, we use a `Map` to keep track of the unique property values we encounter. We then leverage the `filter` method to iterate over each object in the array and check if the property value already exists in the `Map`. If it doesn't exist, we add it to the `Map` and include the object in the resulting array.

After running this code with our example array, `uniqueCars` will contain the following objects:

Js

[
    { brand: 'Toyota', model: 'Corolla' },
    { brand: 'Honda', model: 'Civic' },
    { brand: 'Ford', model: 'Mustang' },
    { brand: 'Honda', model: 'Accord' }
]

As you can see, duplicate objects based on the "model" property have been filtered out, resulting in an array of unique objects.

This technique can be customized to work with different properties and data structures. By understanding how to filter unique objects based on a specific property, you can enhance the efficiency and organization of your data handling processes in JavaScript.

In conclusion, creating an array of unique objects by property value is a valuable skill in software development. By using a combination of `Map` and `filter`, you can achieve this efficiently in JavaScript. Experiment with different scenarios and properties to tailor this approach to your specific needs.