// 描述
// 找出数组 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]))