【问题标题】:get first word in java script websockets在 javascript websockets 中获取第一个单词
【发布时间】:2014-10-13 13:20:12
【问题描述】:
我目前在 java 脚本中使用 websockets,并希望对从 websocket 另一端收到的消息进行一些字符串操作。我想去掉消息中除第一个单词之外的所有字符。例如,如果我收到消息lets go to the party,我想将字符串操作为lets。我在想我会遍历我的索引的字符串索引,直到我遇到第一个空格。但我不确定 javascript 中的语法。这听起来是对的还是有更好的方法来做到这一点?对不起,如果这是微不足道的,我对 JavaScript 还是很陌生。
【问题讨论】:
标签:
javascript
string
websocket
substring
【解决方案1】:
简单:
var theMessage = 'Hello world!';
var theFirstWord = theMessage.split(' ')[0]; // 'Hello'
【解决方案2】:
一种更保守的方法,不需要创建字符串数组,也不需要总是遍历整个字符串。
function getNthWord(input,wordNumber){
if(!input || !input.length)
throw new Exception("No input");
if(!wordNumber || wordNumber <0)
throw new Exception ("Word number missing");
var wordStart=0;
for(var i=0;i<input.length;i++){
var c = input[i];
if(c==' '){
wordNumber--;
if(wordNumber==0)
return input.substring(wordStart,i);
else
wordStart=i+1;
}
}
return input.substring(wordStart,input.length);
}
http://jsfiddle.net/vtortola/7bf2mfag/
我会说它在O(n) 时间和O(1) 空间中运行,尽管如果wordNumber 参数很小,它可能接近O(1) 时间?
另一方面,使用 split 总是 O(n) 时间一个空格。