2013-09-01 17 views
21

Okey tutaj jest mój kod ze szczegółami, co próbowałem zrobić:Get pierwsze słowo ciąg

var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
    var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

     for (var i=0;i<codelines.length;i++) 
     { 
    //What to do here to get the first word of every spilt 
     } 

Więc co należy zrobić tam: \ co chcę dostać to firstword [0] da "Hello" i firstword [1] da "sss" i firstword [2] da "mmm"

Odpowiedz

29

Splitu ponownie przez spacji:

var firstWords = []; 
for (var i=0;i<codelines.length;i++) 
{ 
    var words = codelines[i].split(" "); 
    firstWords.push(words[0]); 
} 

Albo użyć String.prototype.substr() (prawdopodobnie szybciej):

var firstWords = []; 
for (var i=0;i<codelines.length;i++) 
{ 
    var codeLine = codelines[i]; 
    var firstWord = codeLine.substr(0, codeLine.indexOf(" ")); 
  firstWords.push(firstWord); 
} 
+0

Nie działa: s http://jsbin.com/umeqi4/17 –

+0

@SasukeKun zapomniałeś 's' w' firstWords' po * o * pętli: http: // jsbin .com/umeqi4/19/ – ComFreek

+3

Tak, wygląda na to, że 'String.prototype.substr()' jest nieco szybszy: http://jsperf.com/get-first-word-of-string – Benj

2

Ten kod powinien Ci pierwsze słowo,

var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

for (var i=0;i<str1.length;i++) 
{ 
    //What to do here to get the first word :(
    var words = str1[i].split(" "); 
    console.log(words[0]); 
} 
3
var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

for (var i=0;i<str1.length;i++) 
{ 
    //What to do here to get the first word :) 
    var firstWord = str1[i].split(' ')[0]; 
    alert(firstWord); 
} 
10

używam to:

function getFirstWord(str) { 
     let spacePosition = str.indexOf(' '); 
     if (spacePosition === -1) 
      return str; 
     else 
      return str.substr(0, spacePosition); 
    }; 
+1

Wywołujesz indexOf dwa razy. Dla lepszej wydajności cache to. – dimon4eg

4

Jak na temat korzystania underscore.js

str = "There are so many places on earth that I want to go, i just dont have time. :(" 
firstWord = _.first(str.split(" ")) 
12

Użyj wyrażenie regularne

var totalWords = "foo love bar very much."; 

var firstWord = totalWords.replace(/ .*/,''); 

console.log(firstWord); 
+0

Najprostsza odpowiedź. +1 –

Powiązane problemy