zoukankan      html  css  js  c++  java
  • 牛客网前端编程:统计数组 arr 中值等于 item 的元素出现的次数

    //方法一:最普遍的一种:for循环
            function count(arr, item) {
                var cnt=0;
                for (var i = 0;i<arr.length;i++){
                    if (arr[i]===item){
                        cnt++;
                    }
                }
                return cnt;
            }
     //方法二:使用filter
            //filter(function(currentValue, index,arr))
            //当有三个参数时:数组当前值,数组当前索引,该数组名称
            //当有一个参数时:数组当前值
            //filter返回的为符合函数条件的数组,且不改变原数组
            function count1(arr, item) {
                var cnt= arr.filter(function (a) {
                   return  a===item;
                })
                return cnt.length;
            }
     //方法三:使用map函数
            //map函数和filter有点像,但是map是对数组中的所有元素进行复核函数条件的处理,最终得到的是一个新数组,元素个数不变
            //filter函数虽然也是返回一个新数组,但是元素的个数等于复核函数条件的元素总和,
            function count2(arr, item) {
                var cnt = 0;
                arr.map(function (a) {
                    if (a===item){
                        cnt++;
                    }
                })
                return cnt;
            }
    //方法五:foeEach,我觉得和for挺像的
            function count4(arr, item) {
                var cnt = 0;
                arr.forEach(function (a) {
                    a===item ? cnt++ : cnt;
                })
                return cnt;
            }
    //方法四:使用reduce
            //reduce(function (init,curr,curr_index),initialValue)
            //其中init:初始元素;curr:当前元素;curr_index:当前元素索引;initialValue:函数初始值;
            //init和curr是必须的,其他参数可选
            function count3(arr, item) {
                var cnt = arr.reduce(function (init,curr) {
                    //如果当前置等于item,该函数值加一
                    return curr === item ? init+1:init;
                },0)
                return cnt;
            }
  • 相关阅读:
    Raft论文的一些问题
    乱序日志同步成员变更方案
    OceanBase RPC机制简要说明
    OceanBase server处理网络包的回调逻辑
    比较下OceanBase的选举协议和Raft的选举协议的区别
    TokuDB调研文档
    给MySQL官方提交的bug report备忘
    记录一个__lll_lock_wait_private错误
    关于MySQL redo log,挖些坑,慢慢填
    A little problem for pt-pmp
  • 原文地址:https://www.cnblogs.com/purple-windbells/p/11249817.html
Copyright © 2011-2022 走看看