首页 > 解决方案 > 对于数字数组,返回某个数字出现的次数

问题描述

我在一般情况下遇到问题,但已设法完成边缘情况。这是我到目前为止所拥有的(仅供参考,它是 comp 类的介绍,所以它是非常基本的东西):

export let count = (a: number[], b: number): number => {

    let actually = 0;
        for (let i = 0; i < a.length; i++) {
            if (a[i] === b) {
                return actually++;
            }
            if (a[i] !== b) {
                return actually;
            }
            }
        return actually;
    };

输出:

general cases:
FAIL: count([10, 20], 20)
string
-- Expected: 1
string
-- Actually: 0
string
FAIL: count([20, 20], 20)
string
-- Expected: 2
string
-- Actually: 0
string

edge cases:
PASS: count([], 20)
string
PASS: count([10, 30], 20)

标签: javascriptarrays

解决方案


当 you 时return,您就在此处结束该功能。所以基本上,你的函数只查看第一个数字,如果匹配则返回 1,如果不匹配则返回 0。

如果您想计算在整个列表中看到该数字的次数,您应该增加actually,而不是return

然后,在遍历完数组中的每个元素后,您可以 return actually,它应该具有最终计数。


推荐阅读