How to compare two arrays in JavaScript ?

We will see how to compare two arrays in JavaScript. First, we need to compare whether the length of both arrays should be the same or not, and then whether objects present in them are of the same type and whether each item of one array is equal to the other array or not.

These are the following approaches to compare two arrays in JavaScript:

Table of Content

  • Method 1: Using the JSON.stringify() Method
  • Method 2: Using JavaScript for Loop
  • Method 3: String Comparison
  • Method 4: Using Array every() Method
  • Method 5: Using Lodash _.isEqual() Method
  • Method 6: Using Set
  • Method 7: Using reduce and some Methods

Method 1: Using the JSON.stringify() Method

JavaScript provides a function JSON.stringify() method in order to convert an object whether or array into a JSON string. By converting it into JSON strings, we can directly check if the strings are equal or not.

Example: This example uses JSON.stringify() method to convert an object or array into a JSON string, then accordingly check for the given condition. If it satisfies the specific condition then it returns true otherwise, it will return false.

Javascript
// Declare two arrays
let arr1 = [1, 2, 3, 5];
let arr2 = [1, 2, 3, 5];

// Comparing both arrays using stringify method
if (JSON.stringify(arr1) == JSON.stringify(arr2))
    console.log("True");
else
    console.log("False");
   
// Declare another array
let arr3 = [1, 2, 4, 5];

// Comparing both arrays using stringify method
if (JSON.stringify(arr1) == JSON.stringify(arr3))
    console.log("True");
else
    console.log("False");

Output
True
False

Method 2: Using JavaScript for Loop

In this method, we will compare each element of the array one by one using for loop.

Example: In this example, we manually check each and every item and return true if they are equal otherwise return false.

Javascript
function isEqual() {
    let a = [1, 2, 3, 5];
    let b = [1, 2, 3, 5];

    // If length is not equal
    if (a.length != b.length)
        return "False";
    else {

        // Comparing each element of array
        for (let i = 0; i < a.length; i++)
            if (a[i] != b[i])
                return "False";
        return "True";
    }
}
let v = isEqual();

console.log(v);

Output
True

Method 3: String Comparison

While JavaScript does not have an inbuilt method to directly compare two arrays, it does have inbuilt methods to compare two strings. Strings can also be compared using the equality operator. Therefore, we can convert the arrays to strings, using the Array join() method, and then check if the strings are equal.

Example: In this example, we are using join() method.

Javascript
// JavaScript program to implement the approach

// Function that converts the arrays to strings
// and then compares the strings
function isEqual(a, b) {
    return a.join() == b.join();
}

// Driver Code
let a = [1, 2, 3, 5];
let b = [1, 2, 3, 5];

console.log(isEqual(a, b));

Output
true

Method 4: Using Array every() Method

The Javascript Array.every() method considers all the elements of an array and then further checks whether all the elements of the array satisfy the given condition (passed by in user) or not that is provided by a method passed to it as the argument.

Example: In this example, we are using every() method

Javascript
const compareFunc = (a, b) =>
    a.length === b.length &&
    a.every((element, index) => element === b[index]);

let a = [1, 2, 3, 5];
let b = [1, 2, 3, 5];
console.log(compareFunc(a, b)); 

Output
true

Method 5: Using Lodash _.isEqual() Method

In this approach, we are using the Lodash _.isEqual() method that return boolean value of the result whether that given arrays are equal or not.

Example: In this example, we are using the Lodash _.isEqual() method for camparison of two arrays.

Javascript
// Defining Lodash variable 
const _ = require('lodash');

let val1 = [1, 2, 3, 4]

let val2 = [1, 2, 3, 4]

// Checking for Equal Value 
console.log("The Values are Equal : "
    + _.isEqual(val1, val2));

Output:

The Values are Equal : true

Method 6: Using Set

The Set object in JavaScript allows you to store unique values of any type, including arrays. By converting arrays to sets, you can easily compare them, as sets automatically remove duplicate values.

Example:

JavaScript
function compareArrays(arr1, arr2) {
    const set1 = new Set(arr1);
    const set2 = new Set(arr2);

    if (set1.size !== set2.size) {
        return false;
    }

    for (const item of set1) {
        if (!set2.has(item)) {
            return false;
        }
    }

    return true;
}

const arr1 = [1, 2, 3, 4];
const arr2 = [4, 3, 2, 1];

console.log(compareArrays(arr1, arr2)); // Output: true

Output
true

Method 7: Using reduce and some Methods

Another approach to compare two arrays in JavaScript is by using the reduce and some methods. This method involves reducing the arrays into an object that keeps track of the elements and their counts, then comparing these objects.

Example: In this example, we will use the reduce method to create an object with the counts of each element in both arrays, and then use the some method to compare these objects.

JavaScript
function arraysEqual(arr1, arr2) {
    if (arr1.length !== arr2.length) return false;

    const countElements = (arr) => 
        arr.reduce((acc, val) => {
            acc[val] = (acc[val] || 0) + 1;
            return acc;
        }, {});

    const count1 = countElements(arr1);
    const count2 = countElements(arr2);

    return !Object.keys(count1).some(key => count1[key] !== count2[key]);
}

// Example usage
const array1 = [1, 2, 3, 4];
const array2 = [4, 3, 2, 1];
const array3 = [1, 2, 3, 5];

console.log(arraysEqual(array1, array2)); // Output: true
console.log(arraysEqual(array1, array3)); // Output: false

Output
true
false


JavaScript is best known for web page development but it is also used in a variety of non-browser environments. You can learn JavaScript from the ground up by following this JavaScript Tutorial and JavaScript Examples.



Contact Us