在Socket IO和NodeJS中使用Javascript查找数组中的对象

我有一个在NodeJS中使用数组的用户列表,当我使console.log(用户)它显示数组中存在的用户名:48,但是当使用这个代码search它没有发现任何东西,任何人都可以帮助我吗?

这是我的代码:服务器端:

var users=[]; socket.on('user name',function(user_name){ users.push({id:socket.id,user_name:user_name}); len=users.length; len--; //Sending th user Id and List of users io.emit('user entrance',users,users[len].id); io.emit('userslist',users); console.log(users); //it displays id:/#BLABLALBA user_name:48 }); //Sending message to Specific user /*socket.on('send msg',function(data_server){ socket.broadcast.to(data_server.id).emit('get msg',{msg:data_server.msg,id:data_server.id,name:data_server.name}); console.log(data_server.id) });*/ socket.on('check',function(){ var searchTerm = "48", index = ""; for(var i=0;i<users.length;i++){ if (users[i].user_name === searchTerm) { index = users[i].id; console.log(index); } else { index = users[i].id; console.log(index); } } }); 

客户端 :

 $( "#test" ).click(function() { socket.emit('check'); }); 

我尝试了一个w3schools的例子,它完美的工作,但更改数组后没有任何工作。

解决的问题在尝试typeof后,我发现user_name是一个整数,所以我用parseInt把48变成一个整数,它完美的工作

jquery grep函数对于这个目的是有用的

 resultArray= jQuery.grep(yourArray, function( item, i ) { return ( item.user_id==XXXX ); }); 

如果你确定返回一行,

 result = resultArray[0]; id = result.id, name = result.name 

解决的问题在尝试typeof后,我发现user_name是一个整数,所以我用parseInt把48变成一个整数,它完美的工作