Files
30-seconds-of-code/snippets/haveSameContents.md
2020-03-22 01:42:10 +00:00

23 lines
666 B
Markdown

---
title: haveSameContents
tags: array,intermediate
---
Returns `true` if two arrays contain the same elements regardless of order, `false` otherwise.
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.
```js
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;
};
```
```js
haveSameContents([1, 2, 4], [2, 4, 1]); // true
```