[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));//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

 

posted on 2018-03-21 13:21  晏过留痕  阅读(10237)  评论(0编辑  收藏  举报