Check if arrays have same contents

Angelos Chalaris · JavaScript, Array · Oct 19, 2020

Checks if two arrays contain the same elements regardless of order.

  • Use a for...of loop over a Set created from the values of both arrays.
  • Use Array.prototype.filter() to compare the amount of occurrences of each distinct value in both arrays.
  • Return false if the counts do not match for any element, true otherwise.
const haveSameContents = (a, b) => {
  for (const v of new Set([...a, ...b]))
    if (a.filter(e => e === v).length !== b.filter(e => e === v).length)
      return false;
  return true;
};
haveSameContents([1, 2, 4], [2, 4, 1]); // true

Recommended snippets & collections

  • JavaScript Comparison

    Snippet collection

    Comparing values in JavaScript is one of the most common tasks, yet it has a lot of things you should bear in mind.

  • Checks if the elements of the first array are contained in the second one regardless of order.

  • Array permutations

    JavaScript, Array

    Generates all permutations of an array's elements (contains duplicates).

  • Partition array in two

    JavaScript, Array

    Groups the elements into two arrays, depending on the provided function's truthiness for each element.