2017-11-18 45 views
-1
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 '' 
    } 
} 

該代碼大部分工作,但我似乎無法得到它返回一個數組中的多個對象。它只會返回數組的第一部分,或返回一個空字符串。返回內容匹配'pattern'的'pages'對象數組?

urls(pages,"w")運行時,它應該返回["http://bbc.co.uk","www.google.com"],而是返回一個空字符串。

+1

函數返回從函數返回 –

+0

好吧,我將如何去改變它,使其返回內容匹配模式的數組的多個部分? – jayjay275

回答

0

看看你的邏輯:

  1. 進入循環
  2. 看的第一個項目
  3. 如果有匹配:返回的第一個項目(這將退出功能,以及環路)
  4. 如果沒有匹配:返回一個空字符串(這會退出函數和循環)。

你需要改變你的方法。你說你想返回一個數組。所以,你需要:

  • 有一個數組返回
  • 該陣列之前,而不是字符串

開始通過創建循環之前陣列之前,把你的return聲明。

然後,在循環中,你的邏輯不應該返回。它應該將項目添加到數組中。

最後,一旦你已經遍歷所有的數據,返回剛剛創建和填充的新數組。

+0

謝謝。我會試一試。 :) – jayjay275