2013-02-25 81 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

相關問題