2013-02-25 48 views
0

我想知道如何使用JRE javascript而不是使用undercoreJS?我一直在尝试不同的方式,但我无法做到这一点! !:(谢谢如何在不使用underscoreJS的情况下做到这一点?

我想要做的是检查是选中或取消选中基本

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

    ]; 

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

回答

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]); 
    } 
} 
0

您可以使用本机filter method

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

您可以使用Array.filter

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

如果您使用的旧浏览器不包含该方法d在上面的链接中有垫片。

+0

+ 1垫片。它比循环更清洁。 – Blender 2013-02-25 09:27:15

+0

Shim修改Array.prototype,如果使用for/in循环(对于数组中的item)循环,这在某些情况下可能会很危险。我建议为此创建自己的实用程序函数(将其称为myArrayFilter或任何在您的应用程序中有意义的函数),而不是修改Array对象本身。 – calvinf 2013-02-26 00:14:29

相关问题