题解 | #查找重复元素#

查找重复元素

https://www.nowcoder.com/practice/871a468deecf453589ea261835d6b78b

思路:使用myset记录数组中元素,使用res记录数组中重复的元素。遍历arr,如果myset中存在当前元素,则表示该元素重复,故将该元素加入res,反之则将该元素加入myset,最后返回res即可。

function duplicates(arr) 
{
    let myset=new Set()
    let res=new Set()
    for(let val of arr)
    {
        if(myset.has(val))
            res.add(val)
        else
            myset.add(val)
    }
    return [...res]
}

总结:set.has(x)判断set中是否包含x;set.add(x)将x加入set。

扩展:使用res表示重复元素,使用forEach遍历数组arr,使用indexOf和lastIndexOf判断数组arr中是否存在至少两次元素,使用indexOf判断数组res中是否不存在该元素,当这两者均满足时,则将元素加入res。

function duplicates(arr) 
{
    let res=[]
    arr.forEach(x=>{
        if(arr.indexOf(x)!=arr.lastIndexOf(x)&&res.indexOf(x)==-1)
            res.push(x)
    })
    return res
}

总结:indexOf方法返回指定元素在数组中首次出现的索引位置。如果数组中不存在该元素,则返回 -1;lastIndexOf方法返回指定元素在数组中最后一次出现的索引位置。如果数组中不存在该元素,则返回 -1。

#查找重复元素#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

07-18 15:02
门头沟学院 Java
刚打开网申页面就不想填了,还是不要为难自己了
poppinzhan...:多益老行业毒瘤了,碰到徐波这种恶心的烂人,去了也是受罪。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务