js找出数组中重复元素的个数
时间: 2023-03-23 15:01:39 浏览: 192
可以使用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计算是数字类型元素的个数并计算其平均值;找出其最大值
在JavaScript中,你可以使用数组的`length`属性来计算数字类型的元素个数,然后遍历数组求和,最后除以元素个数得到平均值。对于找出最大值,同样遍历数组即可。这里有一个简单的示例:
```javascript
function calculateStats(arr) {
// 检查数组是否只包含数字
if (!arr.every(Number.isFinite)) {
console.log("数组中包含了非数字元素");
return;
}
// 计算元素个数和总和
let length = arr.length;
let sum = arr.reduce((accumulator, current) => accumulator + current);
// 计算平均值
let average = (sum / length).toFixed(2); // 四舍五入到两位小数
// 找出最大值
let maxValue = Math.max(...arr);
console.log(`数组长度: ${length}`);
console.log(`平均值: ${average}`);
console.log(`最大值: ${maxValue}`);
}
// 示例数组
let numbers = [5, 10, 15, 20, 25];
calculateStats(numbers);
```
JavaScript如何找出字符串“Can you can a can as a Canner can can a can”中找出所有c的个数,不区分大小写。
可以通过正则表达式和字符串方法来找出所有c的个数,不区分大小写。具体代码如下:
```
let str = "Can you can a can as a Canner can can a can";
let count = (str.match(/c/ig) || []).length;
console.log(count); // 输出结果为 9
```
解释:`match`方法可以找出字符串中符合正则表达式的所有匹配项,其中`/c/ig`表示查找所有的c,`i`表示不区分大小写,`g`表示全局匹配。`|| []`的作用是当没有匹配项时返回一个空数组,避免出现空指针错误。最后使用`length`方法统计数组的长度,即可得到c的个数。
阅读全文