[JavaScript] 获取数组中相同元素的个数

时间:2023-03-09 05:57:22
[JavaScript] 获取数组中相同元素的个数
    /**
* 获取数组中相同元素的个数
* @param val 相同的元素
* @param arr 传入数组
*/
function getSameNum(val,arr){
processArr = arr.filter(function(value) {
return value == val;
})
return processArr.length;
}
// 去除数组中相邻的重复元素
Array.prototype.distinctCloseTo = function() {
var $ = this;
var o3 = new Array();
var t = 0
for (var i = 0; i < $.length; i++) {
if ($[i] != $[i - 1]) { o3[t] = $[i];
t++;
}
} $.length = 0;
for (var j = 0; j < o3.length; j++) {
$[j] = o3[j];
}
return o3;
}
    /**
* 获取数组中相邻的重复元素的最大个数
* @param val 指定相邻元素值
* @param arr 传入数组
* @returns {number} 相邻的重复元素的最大个数
*/
function getSiblingMax(val,arr) {
var t=0;
var max=0;
for (var i = 0; i < arr.length; i++) {
if(arr[i]==val&&arr[i] == arr[i - 1]){
t++;
if(max<t){
max = t;
}
}else{
t=0;
}
}
return max+1;
}
    var a = [2, 3, 3, 4, 4, 4, 4, 5, 6,3, 'a', 'a', 'a', 'b', 'a', 'b', 'c'];
console.log(getSiblingMax(4,a));//
console.log(a.distinctCloseTo());//[2, 3, 4, 5, 6, 3, "a", "b", "a", "b", "c"]
console.log(getSameNum(1,[1,2,3,1]));//