使用的主题标签数组

时间:2018-03-23 23:01:53

标签: javascript arrays regex string

我正在尝试完成此练习,返回一个使用了主题标签的数组,但我只能返回“#”而不是整个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;
}

但仍然无效。我想最优雅的方式是使用正则表达式,但我不仅仅是迷失了它。 有人可以帮我一把吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

solution.push(str[i]);

你只是推动了最初的'#'角色 - 你想推动整个单词。假设标签用空格分隔,你可以尝试这样的东西:

const solution = str.split(' ').filter(word => word.startsWith('#'));