loading...

Algorithm 202: Array Merging Without Duplicates in 4 Ways

ebereplenty profile image NJOKU SAMSON EBERE ・2 min read

When given a number of arrays, in how many ways can you merge the arrays without duplicates? I have 4 ways prepared for you!

mergeArrays([1, 2, 3, 3, 3], [1, 4, 5, 3, 2], [1, 4, 8, 9]) 
// [ 1, 2, 3, 4, 5, 8, 9 ]

mergeArrays(["Enugu", "Abia", "Lagos"], ["Lagos", "Sokoto", "Enugu"])
// [ 'Enugu', 'Abia', 'Lagos', 'Sokoto' ]

Prerequisite

To benefit from this article, you need to have basic understanding of javascript's array methods.

Let's do this using:

  • for...of...loop, spread operator, includes(), push(), forEach()
      function mergeArrays(...arrays) {
        let combineArray = [];
        let finalArray = [];

        for (array of arrays) {
          combineArray = [...combineArray, ...array];
        }

        combineArray.forEach(element => {
          if (!finalArray.includes(element)) {
            finalArray.push(element);
          }
        });

        return finalArray;
      }
  • for...of...loop, spread operator, includes(), push(), Array.from()
      function mergeArrays() {
        let givenArray = Array.from(arguments);
        let combineArray = [];
        let finalArray = [];

        for (array of givenArray) {
          combineArray = [...combineArray, ...array];
        }

        for (element of combineArray) {
          if (!finalArray.includes(element)) {
            finalArray.push(element);
          }
        }

        return finalArray;
      }
  • for...of...loop, spread operator, Set()
      function mergeArrays(...arrays) {
        let combineArray = [];
        let finalArray = [];

        for (array of arrays) {
          combineArray = [...combineArray, ...array];
        }

        finalArray = [...new Set([...combineArray])];

        return finalArray;
      }
  • for...of...loop, spread operator, filter()
      function mergeArrays(...arrays) {
        let combineArray = [];
        let finalArray = [];

        for (array of arrays) {
          combineArray = [...combineArray, ...array];
        }

        finalArray = combineArray.filter(
          (element, index) => combineArray.indexOf(element) === index
        );

        return finalArray;
      }
  • for...of...loop, spread operator, includes(), reduce(), Array.from()
      function mergeArrays() {
        let givenArray = Array.from(arguments);
        let combineArray = [];
        let finalArray = [];

        for (array of givenArray) {
          combineArray = [...combineArray, ...array];
        }

        finalArray = combineArray.reduce((acc, cha) => {
          if (acc.includes(cha)) {
            return acc;
          } else {
            return [...acc, cha];
          }
        }, []);

        return finalArray;
      }

Conclusion

There are many ways to solve problems programmatically. I will love to know other ways you solved yours in the comment section.

If you have questions, comments or suggestions, please drop them in the comment section.

You can also follow and message me on social media platforms.

Twitter | LinkedIn | Github

Thank You For Your Time.

Posted on by:

ebereplenty profile

NJOKU SAMSON EBERE

@ebereplenty

I love providing solutions to real world problems. When I am not coding, I enjoy movies, hanging out and working out.

Discussion

markdown guide