我正在尝试完成此练习,返回一个使用了主题标签的数组,但我只能返回“#”而不是整个str [i]。 我做错了什么?
到目前为止,这是我的代码:
function extractHashtags(str) {
let solution = [];
for(let i=0; i<str.length; i++){
if(str[i].startsWith('#')){
solution.push(str[i]);
}
}
return solution;
}
AssertionError: expected [ '#' ] to deeply equal [ '#yolo' ]
+ expected - actual
[
- "#"
+ "#yolo"
]
试图找出如何做到这一点,遇到了this,我也尝试过这样做:
function extractHashtags(str) {
let solution = [];
solution.push(str.match(/[^#]/g));
return solution;
}
但仍然无效。我想最优雅的方式是使用正则表达式,但我不仅仅是迷失了它。 有人可以帮我一把吗? 谢谢你的帮助!
答案 0 :(得分:1)
见
solution.push(str[i]);
你只是推动了最初的'#'
角色 - 你想推动整个单词。假设标签用空格分隔,你可以尝试这样的东西:
const solution = str.split(' ').filter(word => word.startsWith('#'));