Compara duas listas em Javascript usando conjuntos. const areListsEqual = (firstList, secondList) => { if (firstList.length !== secondList.length) { return false } const firstListAsSet = new Set(firstList) const secondListAsSet = new Set(secondList) if (firstListAsSet.size !== secondListAsSet.size) { return false } for (const item of firstListAsSet) { if (!secondListAsSet.has(item)) { return false } } return true } module.exports = { areListsEqual, } Testes: const { areListsEqual } = require('./lists') describe('areListsEqual', () => { it('should return true for two equal lists', () => { const firstList = [1, 2, 3] const secondList = [1, 2, 3] expect(areListsEqual(firstList, secondList)).toBe(true) }) it('should return false for two lists with different lengths', () => { const firstList = [1, 2, 3] const secondList = [1, 2, 3, 4] expect(areListsEqual(firstList, secondList)).toBe(false) }) it('should return false for two lists with different elements', () => { const firstList = [1, 2, 3] const secondList = [1, 2, 4] expect(areListsEqual(firstList, secondList)).toBe(false) }) it('should return true for two lists with the same elements in different order', () => { const firstList = [1, 2, 3] const secondList = [3, 2, 1] expect(areListsEqual(firstList, secondList)).toBe(true) }) it('should return true for two lists with the same elements in different order and repeated elements', () => { const firstList = [1, 2, 3, 3] const secondList = [3, 2, 1, 3] expect(areListsEqual(firstList, secondList)).toBe(true) }) it('should return false for two lists with the same elements in different order and different number of repeated elements', () => { const firstList = [1, 2, 3, 3] const secondList = [3, 2, 1, 3, 3] expect(areListsEqual(firstList, secondList)).toBe(false) }) })