I currently have an array of objects and some of them have duplicate key values, specifically the country key in this example. I'm trying to join all the objects in that array with the same country value into an array within that objects array itself.
const objects = [
{ name: 'name1', url: 'name1.com', country: 'IT' },
{ name: 'name2', url: 'name2.com', country: 'IT' },
{ name: 'name3', url: 'name3.com', country: 'IT' },
{ name: 'name4', url: 'name4.com', country: 'IT' },
{ name: 'name5', url: 'name5.com', country: 'IT' },
{ name: 'name6', url: 'name6.com', country: 'CN' },
{ name: 'name7', url: 'name7.com', country: 'CN' },
{ name: 'name8', url: 'name8.com', country: 'CN' },
{ name: 'name9', url: 'name9.com', country: 'AL' },
{ name: 'name10', url: 'name10.com', country: 'CZ' },
{ name: 'name11', url: 'name11.com', country: 'CZ' },
{ name: 'name12', url: 'name12.com', country: 'GB' },
{ name: 'name13', url: 'name13.com', country: 'GB' },
{ name: 'name14', url: 'name14.com', country: 'GB' },
{ name: 'name15', url: 'name15.com', country: 'GB' },
{ name: 'name16', url: 'name16.com', country: 'TR' },
{ name: 'name17', url: 'name17.com', country: 'MN' },
];
So ideally i want the above array of objects to look like this, where the similar are grouped into an array inside that array, including objects that don't have repeated countries, i want them in their own array too:
const newArrayofArrayofObjects = [
[
{ name: 'name1', url: 'name1.com', country: 'IT' },
{ name: 'name2', url: 'name2.com', country: 'IT' },
{ name: 'name3', url: 'name3.com', country: 'IT' },
{ name: 'name4', url: 'name4.com', country: 'IT' },
{ name: 'name5', url: 'name5.com', country: 'IT' }
],
[
{ name: 'name6', url: 'name6.com', country: 'CN' },
{ name: 'name7', url: 'name7.com', country: 'CN' },
{ name: 'name8', url: 'name8.com', country: 'CN' }
],
[{ name: 'name9', url: 'name9.com', country: 'AL' }],
[
{ name: 'name10', url: 'name10.com', country: 'CZ' },
{ name: 'name11', url: 'name11.com', country: 'CZ' }
],
[
{ name: 'name12', url: 'name12.com', country: 'GB' },
{ name: 'name13', url: 'name13.com', country: 'GB' },
{ name: 'name14', url: 'name14.com', country: 'GB' },
{ name: 'name15', url: 'name15.com', country: 'GB' }
],
[{ name: 'name16', url: 'name16.com', country: 'TR' }],
[{ name: 'name17', url: 'name17.com', country: 'MN' }]
];
I tried to achieve what i want with the following code:
let newObjects= [];
Object.entries(objects).forEach(([key, value]) => {
for (let i=0; i < objects.length; i++){
newObjects.push([{ name: value.name, url: value.url, country: value.country}])
}
});
Not quite achieving what i want, any help is appreciated.