我正在edabit上解决一些JS问题,与此同时也遇到了一些问题。该任务要求我们创建一个函数,该函数以字符串形式返回哈希值和加号的数目,并以数组形式返回答案。如果给定一个空字符串,它将返回[0,0]。下面的例子。

hashPlusCount("###+") ➞ [3, 1]

hashPlusCount("##+++#") ➞ [3, 3]

hashPlusCount("#+++#+#++#") ➞ [4, 6]

hashPlusCount("") ➞ [0, 0]

这是我使用正则表达式想到的代码。

const hashPlusCount = str =>
str === "" ? [0,0] :

[str.match(/\#/gi).length,
str.match(/\+/gi).length];


该代码在repl.it和外部编辑器上都可以正常工作。它甚至可以在edabit本身的代码操场上运行!但在质询页面上,它返回“无法读取null的属性'length'
在hashPlusCount”。

我们对解决此问题并帮助我了解正在发生的事情提供了任何帮助。

最佳答案

您需要将空搜索移到返回数组的内部。

const hashPlusCount = str => [
    (str.match(/\#/gi) || '').length,
    (str.match(/\+/gi) || '').length
];

10-08 15:47