js计算找出数组中重复的数
时间: 2023-10-07 08:08:45 浏览: 52
。很高兴回答这个问题。要找出数组中重复的数,可以使用对象来存储每个数字出现的次数,然后遍历对象找到出现次数大于1的数字即可。下面是JS代码示例:
```javascript
function findDuplicate(arr) {
var obj = {};
var duplicates = [];
for (var i = 0; i < arr.length; i++) {
if (obj[arr[i]] === undefined) {
obj[arr[i]] = 1;
} else {
obj[arr[i]]++;
}
}
for (var num in obj) {
if (obj[num] > 1) {
duplicates.push(parseInt(num));
}
}
return duplicates;
}
var arr = [1, 2, 3, 4, 2, 5, 3];
var duplicates = findDuplicate(arr);
console.log(duplicates); // [2, 3]
```
希望这个代码能够帮助到你!
相关问题
js找出数组中重复元素的个数
可以使用JavaScript中的Map对象来统计数组中每个元素出现的次数,进而找出重复元素的个数。
以下是示例代码:
```javascript
function countDuplicates(arr) {
let countMap = new Map();
let duplicates = 0;
// 统计每个元素出现的次数
for (let i = 0; i < arr.length; i++) {
let key = arr[i];
let count = countMap.get(key) || 0;
countMap.set(key, count + 1);
}
// 统计重复元素的个数
for (let count of countMap.values()) {
if (count > 1) {
duplicates++;
}
}
return duplicates;
}
// 示例用法
let arr = [1, 2, 3, 2, 4, 3, 5, 4, 6];
let duplicates = countDuplicates(arr);
console.log(duplicates); // 输出:3
```
以上代码将数组中的每个元素都放入Map对象中,并统计每个元素出现的次数。然后再遍历Map对象的值,如果某个元素出现次数大于1,则说明该元素是重复的,重复元素的个数加1。最终返回重复元素的个数。
js找出数组对象中重复的数据
如果你想在一个数组对象中查找重复的数据,你可以使用`filter`和`some`方法来实现。以下是一个简单的示例代码:
```javascript
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Mary' },
{ id: 3, name: 'Bob' },
{ id: 1, name: 'Jane' },
{ id: 4, name: 'Tom' },
{ id: 3, name: 'Alice' }
];
const duplicates = arr.filter((item, index) => {
return arr.slice(index + 1).some((otherItem) => {
return item.id === otherItem.id;
});
});
console.log(duplicates); // [{ id: 1, name: 'John' }, { id: 3, name: 'Bob' }]
```
这段代码会使用`filter`方法遍历数组对象中的每一个元素,并使用`some`方法遍历该元素之后的所有元素,以查找是否存在与该元素id属性相同的元素。如果找到了相同的元素,就将其添加到重复数组中。最后,打印出重复数组。
请注意,这段代码的性能可能不太好,因为它使用了嵌套的循环。如果数组对象很大,建议使用更高效的算法来查找重复数据。