• 牛客网前端编程:统计数组 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;
            }
  • 相关阅读:
    es6-compact-table 名词备忘
    JS 防抖和节流函数
    为什么 JS 对象内部属性遍历的顺序乱了
    JS 发送 HTTP 请求方法封装
    JS 一些位操作的妙用
    JS 格式化时间
    linux ssh连接
    c# checked 和 unchecked
    c# mvc action 跳转方式
    IIS 动态与静态压缩
  • 原文地址:https://www.cnblogs.com/purple-windbells/p/11249817.html
Copyright © 2020-2023  润新知