2014-10-28 39 views
0

如果我使用c#,我在下面执行此操作,以检查列表中的任何元素是否等于对象运算值,如果是,请不要将其添加到名单。JQuery - 方法等于c#All() - 方法

是否有任何与JQuery做到这一点的平等方式?

C#

public class Users 
{ 
    public string User { get; set; } 
}  

private static List<Users> userList = new List<Users>(); 

string currentUser = Context.User.Identity.Name; 

if (userList.All(o => o.User != currentUser)) 
{ 
    userList.Add(new Users{ User = currentUser }); 
} 

JQuery。尝试...

我试图将项目添加到列表中。如果该项目已经在列表中,则不要添加它。随着我可怜atempt它永远不会被添加...

//users is a list of objects with a property called User(usernames) 
    //currentUserName is a string 
    function onUserList(users, currentUserName) { 

    var currentUser = currentUserName; 

    var i = 0; 
    for (i = 0; i < users.length; i++) { 
     if (users[i].User != currentUser) { 
      $("#monitorMgs").append('<li>' + users[i].User + '</li>'); 
     } 
    } 
}; 
+0

您正在使用错误的数据结构。你应该在这里使用一个集合,而不是索引数组。 – Servy 2014-10-28 17:30:16

回答

0

这其实很简单的使用jQuery每过你的用户阵列来迭代

function onUserList(users, currentUserName) { 
    $.each(users, function() { 
     if ($(this).User != currentUserName) { 
      $('#monitorMgs').append('<li>' + $(this).User + '</li>'); 
     } 
    }) 
} 

编辑做:由于TrueBlueAussie指出的那样,你应该实际使用$ .each()。我已将我的示例重写为

+0

你的意思是使用'jQuery.each(array,callback)'? – 2014-10-28 17:35:25