如何删除列表中的对象?Javascript nodejs和下划线

use*_*681 2 javascript node.js underscore.js

您好我是Javascript和NodeJS的新手,但我需要删除列表中带有布尔值的数组中的对象.列表中有3个朋友和2个朋友,isEvil = true;所以我需要删除2个朋友,输出必须是1.这是我试过的.

我的尝试1:

_.each(user.friends, function(friend) {
    if(friend.isEvil){
        delete friend;
    }
});
console.log(user.friends.length); //output is 3
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它将删除所有属性,但仍然有一个空对象:MyTry 2:

_.each(user.friends, function(friend) {
    if(friend.isEvil){
        delete f.property1;
        delete f.property2;
    }
});
console.log(user.friends.length); //output is 3
Run Code Online (Sandbox Code Playgroud)

我尝试的最后一个是:

_.each(user.friends, function(friend, key) {
    if(friend.isEvil){
        delete user.friends[key];
    }
});
console.log(user.friends.length); //output is 3
Run Code Online (Sandbox Code Playgroud)

Ziv*_*evy 5

只需使用_.filter(list, predicate, [context])提供的功能underscore:

_.filter(user.friends, function(friend){ 
                             return !friend.isEvil; 
  });
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息:http://underscorejs.org/#filter