Node.js计算数组中的特定字符串

时间:2016-07-05 15:48:12

标签: javascript arrays node.js socket.io

我想要做的是一个简单的聊天系统,我已经开始工作;有一个问题:只要有人没有输入用户名,我就会让他们的用户名变为“无名字”。然后将其推送到用户数组中。

如果其他人加入并且没有输入名称,我希望它是“没有名称1,2,3等”。问题是我似乎无法使用字符串' No Name'来计算数组的长度。我的代码是。

var unnamed = users.indexOf('No Name').length;
for(i = 0; i < unnamed; i++){
     socket.username = 'No Name ' + i;
 }

然后输入for循环以确定要在其用户名末尾放置的下一个数字。我做过console.log(unnamed);它只是说未定义。任何提示/解决方案都会很棒!谢谢。

1 个答案:

答案 0 :(得分:0)

你应该保留一个没有名字的用户计数器。每当输入空白用户名时,您只需查找此计数器,相应地命名新用户并将计数器增加1。

var unNamedCounter = 0;

if( socket.username == '' )
{
 if( unNamedCounter == 0 )
  socket.username = 'No Name';
 else
  socket.username = 'No Name ' + unNamedCounter;

  unNamedCounter++;
}