js实现封装函数,判断一个数组中出现次数最多的元素及出现次数。 (1)封装函数并传参,有返回值(5分) (2)将数组元素及出现次数存储成键值对形式(20分) (3)正确比较,结果正确(10分)
时间: 2024-01-01 13:04:29 浏览: 59
好的,我来帮你解决这个问题。
首先,我们需要封装一个函数,接收一个数组作为参数,然后返回一个对象,对象包含出现次数最多的元素和出现次数。代码如下:
```javascript
function findMostFrequent(arr) {
let obj = {};
let maxCount = 0;
let maxElement = null;
for (let i = 0; i < arr.length; i++) {
let element = arr[i];
if (obj[element]) {
obj[element]++;
} else {
obj[element] = 1;
}
if (obj[element] > maxCount) {
maxCount = obj[element];
maxElement = element;
}
}
return { element: maxElement, count: maxCount };
}
```
这个函数的实现思路是,遍历数组中的每一个元素,用一个对象来记录每个元素出现的次数。同时,我们记录出现次数最多的元素和出现次数。遍历结束后,我们将最大出现次数的元素和出现次数存储在一个对象中并返回。
接下来,我们来测试一下这个函数:
```javascript
let arr = [1, 2, 3, 4, 5, 1, 2, 1, 3, 3, 3];
let res = findMostFrequent(arr);
console.log(res); // { element: 3, count: 4 }
```
这是一个简单的测试,我们传入一个数组,这个数组中元素3出现了4次,所以函数的返回值应该是{ element: 3, count: 4 }。
至此,我们完成了这个问题的解答。
阅读全文