数字出现的频率?

Frequency of occurrence of a digit?

我试图在 JavaScrip 中解决这个算法,但我无法做到。我已经在 Java 中完成了,但是我找不到解决这个问题的方法是 JS。如果有人可以向我展示并向我解释解决方案,我将不胜感激 moon and back :) 算法:

找出给定数字在 0 和给定正整数(包括两者)之间的所有整数中出现的频率。

假设要计算的数字(我们称之为 K)是 2。

因此,在 0 到 35 之间,K(在本例中为 2)出现了 14 次:

2, 12, 20, 21, 22 (两次), 23, 24, 25, 26, 27, 28, 29 32 = 14次

输入

输入由 2 行组成。 第一行包含程序需要计算的数字 (K)。 第二行包含数字 N,这是检查 K 出现的范围内的最大数字(例如,在 0 和 N 之间)。 所有数字都是正整数。没有小数或分数。

输出

打印出现在 0 和 N(包括两者)之间的 K 的数量。 如果找不到则打印 0。

提前致谢。

可能的解决方案,一次可能更有效。

let k = String(2);
let n = 35;
let s = String("");

// create string from numbers 0 to n
for (let i = 0; i <= n; i++) s += i;

// check each character for digit
let occurs = s.split('').reduce((a, x) => x === k ? a + 1 : a, 0);

// print result
console.log(occurs);