1

我创建了一个基于填充单词的网格的游戏

在我的代码中,我有一点 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;
}
4

1 回答 1

2

据我所知,您使用的唯一下划线方法是_.find. 但我认为您没有按预期使用它。看起来您只是在满足条件时循环并返回 true。

forEach如果您没有旧版支持,则可以使用本机,或者使用 shim。或者您可以使用该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;
    }
});
于 2012-11-08T15:07:36.030 回答