/** * 获取数组中相同元素的个数 * @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));//4 console.log(a.distinctCloseTo());//[2, 3, 4, 5, 6, 3, "a", "b", "a", "b", "c"] console.log(getSameNum(1,[1,2,3,1]));//2