Возвращает количество хэшей и плюсов в строке JavaScript - PullRequest
4 голосов
/ 30 июня 2019

Я работаю над некоторыми проблемами JS в edabit, и у меня есть некоторые проблемы с этим. Задача просит нас создать функцию, которая возвращает количество хешей и плюсов в строке и возвращает ответ в массиве. Возвращает [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 и сторонних редакторах. Он даже работает на кодовой детской площадке на самом эдабите! Но на странице вызова возвращается «Не удается прочитать свойство« длина », равное нулю at hashPlusCount ".

Любая помощь в решении этой проблемы и помогает мне понять, что происходит, приветствуется.

1 Ответ

4 голосов
/ 30 июня 2019

Вам нужно переместить пустой поиск внутри возвращаемого массива.

const hashPlusCount = str => [
    (str.match(/\#/gi) || '').length,
    (str.match(/\+/gi) || '').length
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...