检查数组是否具有相同的内容
检查两个数组是否包含相同的元素,无论顺序如何。
- 使用
for...of
循环遍历从两个数组的值创建的Set
。 - 使用
Array.prototype.filter()
比较两个数组中每个不同值的出现次数。 - 如果任何元素的计数不匹配,则返回
false
,否则返回true
。
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