JS能力测评11:计数

思路:

遍历的方法

function count(arr, item) {
    var num=0;
    for(var i=0;i<arr.length;i++)
    {
        if (arr[i]==item)
        {
            num+=1;
        }
    }
    return num
}

forEach循环看起来更加简洁,传入一个匿名方法,接收一个参数e用于传入数组中的每一项,最后用一个三元条件运算符来判断结果,true则执行count++,false则为0,最后返回count 

function count(arr, item) {
     var count = 0;
     arr.forEach(function(e){
         //e为arr中的每一个元素,与item相等则count+1
         e == item ? count++ : 0;
     });
     return count;
 }

收集大佬的思想 

//filter()-->利用指定的函数确定是否在返回的数组中包含某一项
        function count(arr, item) {
            var count = arr.filter(function(a) {
                return a === item;   //返回true的项组成的数组
            });
            return count.length;
        }
        //map()-->对数组中的每一项进行给定函数,
        //返回每次函数条用的结果组成的数组;
        function count(arr, item) {
            var count = 0;
            arr.map(function(a) {
                if(a === item) {
                    count++;
                }
            });
            return count;
        }
        //for循环
        function count(arr, item) {
            var count = 0;
            for(var i=0; i<arr.length; i++) {
                if(arr[i] === item) {
                    count++;
                }
            }
            return count;
        }
        //reduce()-->从数组的第一项开始,逐个遍历到最后;
        function count(arr, item) {
            var count = arr.reduce(function(prev, curr) {
                return curr === item ? prev+1 : prev;
            }, 0);
            return count;
        }
                //forEach()-->对数组中的每一项运行传入的函数
        function count(arr, item) {
            var count = 0;
            arr.forEach(function(a) {
                a === item ? count++ : 0;
            });
            return count;
        }

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/85597670