首页 > 试题广场 >

计数

[编程题]计数
  • 热度指数:82907 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
统计数组 arr 中值等于 item 的元素出现的次数

输入描述:
[1, 2, 4, 4, 3, 4, 3], 4


输出描述:
3
示例1

输入

[1, 2, 4, 4, 3, 4, 3], 4

输出

3
推荐
题目本身很简单,有很多实现的方式,循环遍历,正则表达式都可以很容易实现。使用循环遍历,首先声明一个变量count用于计数,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;
 }

编辑于 2015-08-18 21:18:57 回复(12)
function count(arr, item) {
    let num = 0;
    while(arr.indexOf(item) != -1){
        num ++;
        arr.splice(arr.indexOf(item), 1);
    }
    return num;
}

发表于 2021-04-29 16:35:55 回复(0)
function count(arr, item) {
    let sum = 0
    for(let i in arr){
        if(arr[i] === item){
            sum ++;
        }
    }
    return sum
}
for循环
发表于 2021-03-31 21:40:21 回复(0)
用conent来记录,for判断,累加conent
function count(arr, item) {
    var conent = 0
    for (let i = 0; i < arr.length; i++) {
        if(arr[i] == item){
            conent++
        }
    }
    return conent
}
发表于 2021-03-15 18:24:25 回复(0)
// 使用for计算的时间比map和filter时间平均少150ms左右(5次测试结果平均)
function count(arr, item) {
    let num = 0
    for (let i = 0;i<arr.length;i++){
        if (arr[i] === item){
            num++
        }
    }
    return num
}

发表于 2021-02-22 17:12:52 回复(0)
//最简实现方法 使用数组高阶函数 filter 找到满足条件的元素并返回
function count(arr,item){
       return arr.filter(e => e === item).length
}
//ES6 函数式 可能不支持 我在本地跑没问题
const count = (arr,iten) => arr.filter(e => e === item).length
编辑于 2021-02-03 14:15:44 回复(0)
function count(arr, item) {
    return arr.join('-').match(new RegExp(item, 'g')).length
}
方法很多,我更喜欢这样
发表于 2021-01-11 17:58:07 回复(0)
function count(arr, item) {
    let num = 0
    for(j=0;j<arr.length;j++){
        if(arr[j]===item){
            num++
        }
    }
    return num 
}

知识匮乏,只能 for+if  闯天下了
发表于 2020-09-06 13:23:33 回复(0)
function count(arr, item) {
    return arr.filter(value => value===item).length;
}

发表于 2020-09-02 17:54:40 回复(0)
function count(arr, item) {
    let a=arr.join("").split(item).length-1
    return a
}数组转字符串统计次数
发表于 2019-11-01 16:36:39 回复(0)
function count(arr, item) {
    let count = 0
    arr.forEach((val,index)=>{
        if(item == val){
            count ++
        }
    })
    return count
}
发表于 2019-09-16 21:25:52 回复(0)
function count(arr, item) {
    var count = 0;
    arr.forEach(function(ele) {
        return ele === item && count++;
    })
    return count;
}

function count(arr, item) {
    return arr.filter(function(ele) {
        return ele === item;
    }).length;
}

发表于 2019-08-08 21:02:06 回复(0)
function count(arr, item) {
    var i=0;
    arr.forEach(function(e){
        if(e==item){
            i++
        }
    })
    return i;
}
发表于 2018-10-20 21:12:40 回复(0)
function count(arr, item) {
    var c = {
        count:0
    };
    function isItem(el,idx,ar){
        console.log(this);
        if(el === item){
            console.log("get");
            this.count++;
        }
    };
    arr.forEach(isItem, c);
    return c.count;
}
稍微麻烦了一点儿.....

发表于 2018-04-26 20:01:20 回复(0)
 function count(arr, item) {
    return arr.filter(function(i){
        return item === i;
    }).length;
}
编辑于 2018-04-01 10:34:28 回复(0)
function count(arr, item) 

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

哪儿错了?谁帮我一下
发表于 2018-03-11 15:44:23 回复(0)
function count(arr, item) {
    return arr.filter(function(x){
        if(x === item) return 1;
    }).length;
}
直接返回length
发表于 2018-02-24 17:02:43 回复(0)
function count(arr, item) {
   return  arr.reduce(function(prev,cur){
        return cur === item?prev+1:prev
    },0)
}

//合理运用数组reduce方法

发表于 2018-01-16 15:00:29 回复(0)
function count(arr, item) {
    var j = 0;
    for(var i=0;i<arr.length;i++){
        if(arr[i] == item){
            j++;
        }
    }
    return j;
}

发表于 2017-12-12 22:18:42 回复(0)
function count(arr, item) {
    return arr.filter(function (t) { return t===item }).length;
}
发表于 2017-11-21 15:23:24 回复(1)
function count(arr, item) {
    var num = 0;
	for (i = 0;i < arr.length; i++){
        if(arr[i] == item){
            num++;
        }
    }
    return num;
}
//直接for循环,简单粗暴。。
编辑于 2017-08-05 17:24:18 回复(1)

问题信息

难度:
30条回答 22561浏览

热门推荐

通过挑战的用户

查看代码
计数