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