I have below javascript array of object problem in which i have tag array property inside array of object. Tag array contain some value in each array of object. I wanted to get unique tag value from each array of object and combine into single array which will contain only unique tag.
const obj = [{
name: "ABC",
tag: ["abc", "xyz"]
}, {
name: "USA",
tag: ["abc", "suv"]
}, {
name: "ABC",
tag: ["pot", "xyz"]
}]
I need the unique tag item into single array as per below.
const unique = ["abc", "xyz", "suv", "pot"];
A set will give you unique values:
const obj = [{
name: "ABC",
tag: ["abc", "xyz"]
}, {
name: "USA",
tag: ["abc", "suv"]
}, {
name: "ABC",
tag: ["pot", "xyz"]
}]
const unique = [...new Set(obj.flatMap(({tag}) => tag))];
console.log(unique)
You can use Set to filtered out the unique elements from an array.
Demo :
const obj = [{
name: "ABC",
tag: ["abc", "xyz"]
}, {
name: "USA",
tag: ["abc", "suv"]
}, {
name: "ABC",
tag: ["pot", "xyz"]
}];
let arr = [];
obj.forEach((item) => {
arr.push(...item.tag)
})
console.log([...new Set(arr)]);