美文网首页
codewars刷题之sum of positive

codewars刷题之sum of positive

作者: itcats | 来源:发表于2019-01-09 17:43 被阅读0次

    Sum of positive 计算所有正数的和

    You get an array of numbers, return the sum of all of the positives ones.
    
    Example [1,-4,7,12] => 1 + 7 + 12 = 20
    
    Note: if there is nothing to sum, the sum is default to 0.
    

    获取数组中所有正数的和,如果都不是正数,则输出和为0。

    我的答案

    function positive_sum($arr)
    {
        $sum = 0;
        foreach ($arr as $v) {
            if ($v > 0) {
                $sum += $v;
            }
        }
        return $sum;
    }
    

    人气最高答案

    function positive_sum($a)
    {
        return array_sum(array_filter($a, function ($n) {
            return $n > 0;
        }));
    }
    

    知识点

    1. array_sum()

    函数返回数组中所有值的和。

    如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。

    1. array_filter()

    函数用回调函数过滤数组中的值。

    该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

    反思

    作为一道8 kyu的题目,我用了比较常规无脑的写法,用foreach遍历数组,再用if来做判断求和,虽然能达到目的,但看了人气答案后,感觉自己对php自带的一些数组函数非常不熟悉,这是一件很可怕的事情。要加强基础知识的恶补。

    首发地址:codewars刷题之sum of positive

    相关文章

      网友评论

          本文标题:codewars刷题之sum of positive

          本文链接:https://www.haomeiwen.com/subject/rdigrqtx.html