24 lines
651 B
Markdown
24 lines
651 B
Markdown
---
|
|
title: haveSameContents
|
|
tags: array,intermediate
|
|
---
|
|
|
|
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.
|
|
|
|
```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
|
|
```
|