Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

How to get symmetric difference between two arrays in JavaScript ?

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

In Mathematics the symmetric difference between two sets A and B is represented as A Δ B = (A – B) ∪ (B – A)

  • It is defined as a set of all elements that are present in either set A or set B but not in both.
  • In simple words, common elements are discarded from both sets.

Example 1:

A = { 1, 2, 3, 4, 5, 6}
B = { 4, 5, 6, 7 }

A - B = { 1, 2, 3, 4, 5, 6} - { 4, 5, 6, 7 }
      = { 1, 2, 3 }
B - A = { 4, 5, 6, 7 } - { 1, 2, 3, 4, 5, 6}
      = { 7, 1, 2, 3 }
      
A Δ B = ( A - B ) ∪ ( B - A )
      = { 1, 2, 3 } ∪ { 7, 1, 2, 3 }
A Δ B = { 1, 2, 3, 7 }

Example: In this example, we will be finding the symmetric difference of the two arrays using Javascript for loop.

Javascript




<script>
    /* Defining two arrays and a
                resultant array*/
    const a = [1, 2, 3, 4, 5, 7, 9];
    const b = [5, 6, 7, 8, 9];
    const result = [];
     
    /* Defining the function with two
    arguments array inputs */
    function difference(arr1, arr2) {
        var i = 0,
            j = 0;
        var flag = false;
     
        /* For array 1 */
        for (i = 0; i < arr1.length; i++) {
     
            /* Resetting the flag and the
            other array iterator */
            j = 0;
            flag = false
            while (j != arr2.length) {
                if (arr1[i] == arr2[j]) {
                    flag = true;
                    break;
                }
                j++;
            }
     
            /* If value is not present in the
            second array then push that value
            to the resultant array */
            if (!flag) {
                result.push(arr1[i]);
            }
        }
        flag = false;
     
        /* For array 2 */
        for (i = 0; i < arr2.length; i++) {
     
            /* Resetting the flag and the
            other array iterator */
            j = 0;
            flag = false
            while (j != arr1.length) {
                if (arr2[i] == arr1[j]) {
                    flag = true;
                    break;
                }
                j++;
            }
     
            /* If value is not present in the
            first array then push that value
            to the resultant array */
            if (!flag) {
                result.push(arr2[i]);
            }
        }
        return result;
    }
    console.log(difference(a, b));
</script>


Output:

[ 1, 2, 3, 4, 6, 8]

My Personal Notes arrow_drop_up
Last Updated : 24 Apr, 2023
Like Article
Save Article
Similar Reads
Related Tutorials