- 不需要知道重复元素是什么
const isPureArray = array => { return [...new Set(array)].length === array.length}console.info(isPureArray([1, 2, 3, 4])) // trueconsole.info(isPureArray([1, 2, 3, 2])) // false- 需要知道重复元素的索引,这种情况下还需要考虑多次重复的情况
const getRepeatedItems = array => { const pureArray = [...new Set(array)] const repeatedItems = new Map() if (pureArray.length === array.length) return repeatedItems pureArray.forEach(item => { repeatedItems.set(item, []) }) array.forEach((item, index) => { repeatedItems.get(item).push(index) }); [...repeatedItems.keys()].forEach(key => { if (repeatedItems.get(key).length < 2) repeatedItems.delete(key) }) return repeatedItems}const result = getRepeatedItems([1, 2, 3, 4, 1, 3, 4, 4, 2, 1, 1, 1, 5, 7])// 然后就可以获取 result 内容,重复元素及其对应的每个重复索引