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.
// 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.
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 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
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.
// 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:
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.
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.