找出数组出现最多的元素,并返回出现的下标

方案A

function getMaxAndIndex(arr) {
    var obj = {};
    arr.forEach(function(item, index) {
        if (!obj[item]) {
            obj[item] = { indexs: [index] }
        } else {
            obj[item]['indexs'].push(index);
        }
    });
    var num = 0; //记录出现次数最大值
    var str = ''; //记录出现次数最多的字符
    var reArr; //返回最大值的位置数组
    for (var attr in obj) {
        var temp = obj[attr]['indexs'];
        if (temp.length > num) {
            num = temp.length;
            str = attr;
            reArr = temp;
        }
    }
    return {
        maxStr: str,
        indexs: reArr
    }
}

var array = [1,3,6,3,6,1,234,64,87,3,7,9,56,72]
getMaxAndIndex(array)
原文地址:https://www.cnblogs.com/camille666/p/js_getMax_index.html