Make an array A with the result of each value of array B splitted by pipe

I have an array of strings. Some of the strings within this array have a pipe character. I would like to split the strings by "|" and store all the unique values into a new array.

What would be an efficient way to get a temporary array with all the splited values in it, without using poor performance loops?

Once I have the temporary array with all the splited values in it, I plan de remove all duplicates like this :
var result = […new Set(result)]

var arr = ["A|B|C","B|A","E|A|D","F"]

// result does not have to be sorted
var expectedResult = ["A","B","C","D","E","F"]

>Solution :

Use flatMap() and split() to get a single array, and use a Set to retain unique elements:

const array = ["A|B|C","B|A","E|A|D","F"];
const result = [...new Set(array.flatMap(v => v.split('|')))];

console.log(result);

Leave a Reply