目标是找到数组中重复值的数量。
我在做什么:对于数组中的每个项目,如果不在临时数组中,请将其添加,否则计数+ = 1。
function find_duplicate_in_array(arra1) {
var temp=[];
let count = 0;
arra1.forEach(function (item) {
if(!temp[item]) {
temp.push(item);
} else {
count=count+1;
}
});
console.log(temp);
return count;
}
let result=find_duplicate_in_array(["sam", "bob", "sam"]);
console.log(result);
实际结果:0; 预期结果:1(TYPO,重复的数字为1);
为什么?
答案 0 :(得分:1)
我相信您最终想要的结果是1.提供的数组中只有一个重复项,如果再添加一个“ sam”,将会有两个。 <Typography component="p" className={classes.Typography}>
{incident.incident_description}
</Typography>
不在数组内查找值。 temp[item]
会起作用,它确实会在数组中查找指定的项目。
答案 1 :(得分:0)
您也可以使用“ Array.filter”,“ new Set”尝试问题,如下所示
function find_duplicate_in_array(arr) {
return [...new Set(arr.filter((d, i) => i != arr.lastIndexOf(d)))]
}
let res = find_duplicate_in_array(["sam", "bob", "sam", "nitish", "nn", "nn", "nn"])
console.log('Duplicate values ', res)
console.log('Duplicate values length', res.length)
答案 2 :(得分:0)
有几种方法可以实现,这是最简单的方法:
$ht.Add($lastmatch.Name,$lastmatch.Value)
或者您可能尝试用其他语言解决它:例如python中的dict
答案 3 :(得分:0)
您可以收集对象中的索引,并按索引数组的长度过滤值。然后返回由键和索引组成的数组。
function find_duplicate_in_array(array) {
var temp = {};
array.forEach((item, index) => (temp[item] = temp[item] || []).push(index));
return Object
.entries(temp)
.filter(([, { length }]) => length > 1);
}
let result = find_duplicate_in_array(["sam", "bob", "sam"]);
console.log(result);