I want to merge these array in to single array with unique value. don't want repeated values.
0:Array(2) ["General Fitness", "Health & Fitness"]
1:Array(2) ["Cardiovascular", "Meditation"]
2:Array(3) ["Health & Fitness", "Cardiovascular", "General Fitness"]
3:Array(1) ["Cardiovascular"]
I am expecting this answer:
["General Fitness", "Health & Fitness", "Cardiovascular", "Meditation"]
With lodash you can use _.union()
and _.spread()
to generate a function that flattens to a single array with unique values:
const fn = _.spread(_.union);
const arrs = [
["General Fitness", "Health & Fitness"],
["Cardiovascular", "Meditation"],
["Health & Fitness", "Cardiovascular", "General Fitness"],
["Cardiovascular"]
];
const result = fn(arrs);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
Using ES6 you can flatten the arrays, and make the result unique by passing it through a Set, and spreading back to an array:
const arrs = [
["General Fitness", "Health & Fitness"],
["Cardiovascular", "Meditation"],
["Health & Fitness", "Cardiovascular", "General Fitness"],
["Cardiovascular"]
];
const result = [...new Set(arrs.flat())];
console.log(result);
const arrs = [
["General Fitness", "Health & Fitness"],
["Cardiovascular", "Meditation"],
["Health & Fitness", "Cardiovascular", "General Fitness"],
["Cardiovascular"]
];
const result = _.uniq(_.flatten(arrs));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With