2015-12-29 77 views
2

我從使用JavaScript的API加載關於NBA遊戲的數據,我想操縱它,但是遇到了麻煩。每場比賽是自己單獨的對象,並且將數據返回這樣的:擺脫字符串中的無關字符-IOS

Date: "Nov 7, 2014" 
Opponent: "@ Charlotte" 
Result: "L" 
Score: "122-119" 
Spread: "+1.5" 

取決於球隊是否是在家或外出,也可以是一個「@」或「VS」在前面的該特定遊戲的對手的名稱。我想擺脫這一點,所以在上面的例子中,「對手」鍵只有「夏洛特」作爲它的價值。

我使用
gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").pop

擺脫的空間之前的任何字符嘗試過,但是當有是一個像「紐約」或「洛杉磯」中有空格隊名這個遺址的數據

+1

你考慮考慮使用正則表達式? – TrojanMorse

+0

我對正則表達式不太熟悉,但是如何解決這個問題? –

+0

@BenMelito我剛剛用正則表達式添加了一個答案 – xkcd149

回答

0

這需要字符串,並創建一個新的子字符串,從第一個空格的索引處開始。例如:

@紐約=在@之後開始的新字符串。 - >紐約

gameLog[i].Opponent = gameLog[i].Opponent.substr(gameLog[i].Opponent.indexOf(' ')+1); 
+0

您能提供更多關於實際內容的解釋嗎?這將會提供更好的答案。 – xkcd149

+0

它接受字符串,並從第一個空格的索引開始創建一個新的子字符串。 例如:@紐約=在@之後開始的新字符串。 - >紐約 –

0

我想,沿着這些線可能會有所幫助。

var home = "@ Charlotte"; 
var opponent = "vs New York"; 

function parse(team){ 

    // Case when it is a home team 
    if (team.indexOf("@") === 0){ 

    return team.replace("@","").trim(); 

    // Away team 
    } else { 

    return team.replace("vs","").trim(); 

    } 

} 

console.log(parse(home)); 
console.log(parse(opponent)); 
0
gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").slice(1).join(" ")); 
  1. 拆分基於斷空格字符
  2. 切片斷第一項陣列
  3. 與空間加入數組的內容回到一起。
0

您需要substr()方法:

var str = "@ Charlotte"; 
var res = str.substr(2); 

結果:Charlotte

除非也有後 「VS」 的空間,這是不明確的。

那麼你可以使用:

var str = "@ Charlotte"; 
var res = str.substr(str.indexOf(' ')+1); 
0

您可以使用正則表達式來代替不必要的字符,而遍歷對象的數組。

for (var i = 0; i < arr.length; i++) { 
     arr[i].Opponent = arr[i].Opponent.replace(/@\s|vs\s/g, ''); 
} 

這裏有一個jsbin