underscore.js的替代解决方案

时间:2012-11-08 14:48:38

标签: javascript jquery underscore.js

我创建了一个基于填充了单词

的网格的游戏

在我的代码中,我有一小部分下划线.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;
}

1 个答案:

答案 0 :(得分: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;
    }
});