I did a little research and I found out that by time complexity this is the fastest way of merging two arrays with unique values:
let array1 = [{"chosen": true, "name": "crypto"}, {"chosen": true, "name": "future"}, {"chosen": true, "name": "money"}, {"chosen": true, "name": "conspiracy"}, {"chosen": true, "name": "economy"}, {"chosen": true, "name": "invest"}, {"chosen": true, "name": "collect"}, {"chosen": true, "name": "tech"}, {"chosen": true, "name": "trump"}, {"chosen": true, "name": "biden"}, {"chosen": true, "name": "aliens"}, {"chosen": true, "name": "culture"}, {"chosen": true, "name": "politics"}, {"chosen": true, "name": "society"}, {"chosen": true, "name": "america"}, {"chosen": true, "name": "entertainment"}, {"chosen": true, "name": "people"}, {"chosen": true, "name": "opinion"}, {"chosen": true, "name": "blog"}]
let array2 = [{"chosen": false, "name": "crypto"}, {"chosen": false, "name": "future"}, {"chosen": false, "name": "money"}, {"chosen": false, "name": "conspiracy"}, {"chosen": false, "name": "economy"}, {"chosen": false, "name": "invest"}, {"chosen": false, "name": "collect"}, {"chosen": false, "name": "tech"}, {"chosen": false, "name": "trump"}, {"chosen": false, "name": "biden"}, {"chosen": false, "name": "aliens"}, {"chosen": false, "name": "culture"}, {"chosen": false, "name": "politics"}, {"chosen": false, "name": "society"}, {"chosen": false, "name": "america"}, {"chosen": false, "name": "entertainment"}, {"chosen": false, "name": "people"}, {"chosen": false, "name": "opinion"}, {"chosen": false, "name": "blog"}, {"chosen": false, "name": "tabloid"}, {"chosen": false, "name": "humor"}, {"chosen": false, "name": "announcement"}]
let array3 = array1.concat(array2);
array3 = [...new Set([...array1,...array2])]
The problem is, it does not returns unique values from both of the arrays.The output is like this:
-----array3 [
{ chosen: true, name: 'crypto' },
{ chosen: true, name: 'future' },
{ chosen: true, name: 'money' },
{ chosen: true, name: 'conspiracy' },
{ chosen: true, name: 'economy' },
{ chosen: true, name: 'invest' },
{ chosen: true, name: 'collect' },
{ chosen: true, name: 'tech' },
{ chosen: true, name: 'trump' },
{ chosen: true, name: 'biden' },
{ chosen: true, name: 'aliens' },
{ chosen: true, name: 'culture' },
{ chosen: true, name: 'politics' },
{ chosen: true, name: 'society' },
{ chosen: true, name: 'america' },
{ chosen: true, name: 'entertainment' },
{ chosen: true, name: 'people' },
{ chosen: true, name: 'opinion' },
{ chosen: true, name: 'blog' },
{ chosen: false, name: 'crypto' },
{ chosen: false, name: 'future' },
{ chosen: false, name: 'money' },
{ chosen: false, name: 'conspiracy' },
{ chosen: false, name: 'economy' },
{ chosen: false, name: 'invest' },
{ chosen: false, name: 'collect' },
{ chosen: false, name: 'tech' },
{ chosen: false, name: 'trump' },
{ chosen: false, name: 'biden' },
{ chosen: false, name: 'aliens' },
{ chosen: false, name: 'culture' },
{ chosen: false, name: 'politics' },
{ chosen: false, name: 'society' },
{ chosen: false, name: 'america' },
{ chosen: false, name: 'entertainment' },
{ chosen: false, name: 'people' },
{ chosen: false, name: 'opinion' },
{ chosen: false, name: 'blog' },
{ chosen: false, name: 'tabloid' },
{ chosen: false, name: 'humor' },
{ chosen: false, name: 'announcement' }
]
Is it because I have objects and it requires different way of doing It? Any suggestions please?