1

I need to combine ccAddresses and toAddresses values into just one set of array without duplication.

Expected Output

   { "newAddresses": ["john@gmail.com", "joshua@gmail.com", "jane@gmail.com", "james@gmail.com"] }

const old = [
  {
    "ccAddresses": ["john@gmail.com", "joshua@gmail.com"],
  },
  { 
    "ccAddresses": ["jane@gmail.com", "joshua@gmail.com"],
    "toAddresses": ["jane@gmail.com", "james@gmail.com"],
  }
];

const news = old.flatMap((val, index) => ({
"newAddress": val.ccAddresses
}))

console.log(news)
Joseph
  • 7,042
  • 23
  • 83
  • 181

1 Answers1

1
const res = Array.from(new Set([...old.flatMap(x => [...x.ccAddresses])]))

UPDATED(as per new author's requirement):

Array.from(new Set([...old.flatMap(x => [...x.ccAddresses].concat([...x.toAddresses || []]))]))
Mykyta Halchenko
  • 720
  • 1
  • 3
  • 21