我正在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
];