2012-11-08 208 views
1

我創建了一個基於網格文字替代解決方案underscore.js

在我的代碼正在填充我有underscore.js一個小一點,可以幫助我的話適合在可用空間遊戲電網沒有突破電網障礙。

據我所知,它是非常強大的Java腳本,並不親自有一個問題。但是我的團隊經理希望擺脫它,因爲只有一個函數可以提供相同的解決方案,並且可以節省我擁有整個庫的jQuery。我將如何用一些jQuery替換這個?

function getWordToFitIn(spaceAvail, wordlist) { 
    var foundIndex = -1; 
    var answer = _.find(wordlist, function (word, index) { 
     if (word.length <= spaceAvail) { 
      foundIndex = index; 
      return true; 
     } 
    }); 
    if (foundIndex == -1) { 
     answer = getXSpaces(spaceAvail); 
     _.find(wordlist, function (word, index) { 
      if (word[0] == " ") { 
       foundIndex = index; 
       return true; 
      } 
     }); 
    } 
    if (foundIndex != -1) { 
     wordlist.splice(foundIndex, 1); 
    } 
    return answer; 
} 
+5

研究源碼。 http://underscorejs.org/docs/underscore.html –

+0

我看了一下。我明白它在做什麼,我只是不知道如何去取代它。 @ user1689607 –

+1

哪部分你不明白? *(看起來好像我過去和你有過這樣的對話)。* –

回答

2

據我所見,您唯一使用的下劃線方法是_.find。但我認爲你沒有按照它的意圖使用它。看起來你只是簡單循環,並在符合條件時返回true。

如果您沒有舊式支持或使用墊片,則可以使用本機forEach。或者您可以使用jQuery.each方法。

第一循環可以可能(我不是100%肯定的answer變量)這樣寫:

var answer; 
$.each(wordlist, function(index, word) { 
    if (word.length <= spaceAvail) { 
     foundIndex = index; 
     answer = word; 
     return false; // stops the loop 
    } 
}); 

,第二個:

$.each(wordlist, function (index, word) { 
    if (word[0] == " ") { 
     foundIndex = index; 
     return false; 
    } 
}); 
+0

謝謝。最後一點呢?它保持不變嗎? @David –

+0

@ Milo-J最後一點?就我所見,剩下的就是原生JavaScript。 – David

+0

@ Milo-J:也許你應該嘗試一下並找出答案。 –