在Javascript数组中查找重复元素

在Javascript数组中查找重复元素,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个数组,我想找出哪个元素有两次 我想为原始数组中的每个元素创建一个新数组,而不使用该元素。这个数组包含相同的元素,但是在切片我们正在处理的元素之后。然后我们将尝试在这个新数组中找到它:因此,如果它在原始数组中存在两次,它将在那里并返回“true”,如果不存在,它将不在新数组中,并根据我的代码返回“false” let arr = ["stephanie", "alex", "steven", "alex"] function double(name) { arr.forEach((n

我有一个数组,我想找出哪个元素有两次

我想为原始数组中的每个元素创建一个新数组,而不使用该元素。这个数组包含相同的元素,但是在切片我们正在处理的元素之后。然后我们将尝试在这个新数组中找到它:因此,如果它在原始数组中存在两次,它将在那里并返回“true”,如果不存在,它将不在新数组中,并根据我的代码返回“false”

let arr = ["stephanie", "alex", "steven", "alex"]

function double(name) {
  arr.forEach((name, index) => {
    let newarr = arr.slice(index);
    console.log(newarr);
    const searchedelement = newarr.find(name === nom);
    console.log(searchedelement);
  })
}

console.log(double(name))

如果整个阵列中只有一个double,请使用以下命令:

let arr=[“斯蒂芬妮”、“亚历克斯”、“史蒂文”、“亚历克斯”]
res=arr.filter(v=>arr.indexOf(v)!==arr.lastIndexOf(v))[0];

console.log(res)
您可以通过检查在数组中找到值的次数来筛选数组

然后,构造一个
Set
对象以消除所有重复项

const arr=['joe'、'steph'、'jon'、'joe'、'thomas'、'john'];
console.log(
[…新集合(arr.filter(e=>arr.filter(s=>s==e).length>1))]
);您可以作为

让arr=[“斯蒂芬妮”、“亚历克斯”、“史蒂文”、“亚历克斯”];
函数为双(arr){
让isDouble=false;
对于(让el代表arr){
if(arr.filter(element=>element!=el).length===arr.length-2){
isDouble=true;
打破
}
};
回报是双重的;
};

控制台日志(isDouble(arr))若要达到预期结果,请使用下面的选项usind REDUCTO循环一次

  • 通过使用reduce和push循环到累加器的对象
  • 检查属性是否存在并推送到重复数组
  • 返回重复数组
  • let arr=[“斯蒂芬妮”、“亚历克斯”、“史蒂文”、“亚历克斯”]
    双功能(arr){
    常数dup=[]
    方位减少((acc,v)=>{
    acc[v]=acc[v]?重复推送(v):1;
    返回acc
    }, {});
    返回dup
    }
    
    log(double(arr))
    注意:您没有从
    double
    返回任何要记录的内容。