[js][填坑] 数组中各元素的数量、数量最多的元素
#遍历关联数组、对象,用 for in
function eleCount(arr) { // if (typeof arr == 'string') { // arr = arr.split(''); // }不需要 var temp = {}; var maxName; var maxCount = 0; for (var i = 0; i < arr.length; i++) { if (temp[arr[i]]) { temp[arr[i]] += 1; } else { temp[arr[i]] = 1; } } console.info(temp); for (var k in temp) { if (maxName) { if (maxCount < temp[k]) { maxName = k; maxCount = temp[k]; } } else { maxName = k; maxCount = temp[k]; } } console.warn(maxName, maxCount); } var arr1 = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67]; var arr2 = ['a', 'b', 'd', 'e', 'f', 'h', 'g', 'k', 'a', 'b', 'e', 'd']; var arr3 = ['a', 'b', 'd', 'e', 'F', 'F', 'g', 'k', 'A', 'B', 'e', 'd']; var arr4 = 'sdfxcaweasdazkvda'; eleCount(arr1); eleCount(arr2); eleCount(arr3); eleCount(arr4); //只对数字数组有效,对关联数组无效 console.log(Math.max.apply(null, arr1)); //89 console.log(Math.max.apply(null, arr2)); //NaN console.log(Math.max.apply(null, arr3)); //NaN
#abandon
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67];
            //var b = a.sort();//浅复制
            var b = [];
            //深复制防止改变原数组
            //深复制方法一
            //            b = a.map(function(e, i, arr) {
            //                return e;
            //            })            
            //深复制方法二
            //            a.forEach(function(e, i, arr) {
            //                b[i] = e;
            //            });
            //深复制方法三
            for (var i = 0; i < a.length; i++) {
                b[i] = a[i];
            }
            b.sort();
            var count = 1;
            var temp = [];
            var max = 1;
            var maxname;
            for (var i = 0; i < b.length; i++) {
                if (b[i] == b[i + 1]) {
                    count++;
                } else {
                    if (max < count) {
                        max = count;
                        maxname = b[i];
                    }
                    console.log(b[i] + '的个数为:' + count);
                    
                    count = 1;
                }
            }
            console.log(a);
            console.log(b);
            console.log(maxname + '的个数最多,为:' + max);
        </script>
    </body>
</html>
                    
                
                
            
        
浙公网安备 33010602011771号