// 描述 // 找出数组 arr 中重复出现过的元素(不用考虑返回顺序) // 示例1 // 输入: // [1, 2, 4, 4, 3, 3, 1, 5, 3] // 输出: // [1, 3, 4] function duplicates(arr) { let result = [] arr.forEach(function (value, index) { if (index !== arr.length - 1) if (arr.indexOf(value, index + 1) !== -1 && !result.includes(value)) result.push(value) }) // 也可以这么写,两者前后寻找的位置不唯一则重复 // arr.forEach((value) => { // if (arr.indexOf(value) !== arr.lastIndexOf(value) && !result.includes(value)) // result.push(value) // }) return result } // 从后开始查找位置不是当前位置,且当前元素为数组第一次出现的元素,避免重复 function duplicates(arr) { return arr.filter((value, index) => { return arr.lastIndexOf(value) !== index && index == arr.indexOf(value) }) } console.log(duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]))