从'pages'中返回一个对象数组,其中的内容与'pattern'匹配?

时间:2017-11-18 11:26:59

标签: javascript

var pages = ["/garethnunns.com/simply a brilliant site, that has a bunch of beautiful content / stuff ", " - http: //bbc.co.uk-Some news ", " | www.google.com | What an OG, wow "]

function urls(pages, pattern) {
  //returns an array of urls from pages where 
  //content matches pattern 

  for (var i = 0; i < pages.length; i++) {
    var string = pages[i].split(pages[i].charAt(0));
    if (match(pages[i], pattern)) {
      return string[1]
    }
    return ''
  }
}

代码在很大程度上起作用,但我似乎无法从数组中返回多个对象。它只会返回数组的第一部分,或返回一个空字符串。

运行urls(pages,"w")时,它应该返回["http://bbc.co.uk","www.google.com"],而是返回一个空字符串。

1 个答案:

答案 0 :(得分:0)

看看你的逻辑:

  1. 进入循环
  2. 查看第一项
  3. 如果匹配:返回第一个项目(退出函数,循环)
  4. 如果没有匹配:返回一个空字符串(退出该函数,然后循环)。
  5. 您需要改变方法。

    你说你想要返回一个数组。所以你需要:

    • 有一个要返回的数组
    • return语句放在该数组之前而不是字符串
    • 之前

    首先在循环之前创建该数组。

    然后,在循环内部,你的逻辑不应该返回。它应该向数组中添加项目。

    最后,一旦循环完所有数据,返回刚刚创建并填充的新数组。