如何在不使用underscoreJS的情况下执行此操作?

时间:2013-02-25 09:22:18

标签: javascript underscore.js

我想知道如何使用JUST javascript 而不使用使用undercoreJS?我一直在尝试不同的方式,但我无法实现它! :(谢谢!

我想要做的是检查基本上是选中还是未选中的内容。

myArray =[
        {text: 'lean something', done: false},
        {text: 'what ever', done: false }

    ];

function clearCompleted = function(){
        myArray = _.filter(myArray, function(todo){
                    return !todo.done;
                });

3 个答案:

答案 0 :(得分:3)

如果您只支持现代浏览器(即任何比IE8更新的浏览器),您只需使用.filter()

myArray.filter(function(todo){
    return !todo.done;
});

如果您想支持旧浏览器,请使用循环:

var temp = [];

for (var i = 0; i < myArray.length; i++) {
    if (!myArray[i].done) {
        temp.push(myArray[i]);
    }
}

答案 1 :(得分:2)

您可以使用Array.filter

myArray = myArray.filter(function(todo) {
    return !todo.done;
});

如果您使用的是不包含该方法的较旧浏览器,则可通过上述链接获取垫片。

答案 2 :(得分:0)

您可以使用原生filter method

myArray = myArray.filter(function(todo){
    return !todo.done;
});