[英]Getting Rid of Extraneous Characters in a String-Javascript
我正在使用Javascript从API加载有关NBA游戏的数据,我想对其进行操作,但遇到了麻烦。 每个游戏都是其自己的单独对象,并且数据是这样返回的:
Date: "Nov 7, 2014"
Opponent: "@ Charlotte"
Result: "L"
Score: "122-119"
Spread: "+1.5"
根据球队是家乡还是客场,在该场比赛的对手名字前面有一个“ @”或“ vs”。 我想摆脱这种情况,因此在上面的示例中,“ Opponent”键只有“ Charlotte”作为其值。
我试过使用
gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").pop
删除空格之前的所有字符,但是当其中有一个带有“ New York”或“ Los Angeles”之类的空格的团队名称时,这会破坏数据
这将获取字符串,并从第一个空格的索引开始创建一个新的子字符串。 例如:
@ New York = @之后的新字符串。 ->纽约
gameLog[i].Opponent = gameLog[i].Opponent.substr(gameLog[i].Opponent.indexOf(' ')+1);
我想,遵循这些思路可能会有所帮助。
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) );
gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").slice(1).join(" "));
您需要substr()
方法:
var str = "@ Charlotte";
var res = str.substr(2);
结果: Charlotte
除非“ vs”后还有空格,否则不清楚。
然后,您可以使用:
var str = "@ Charlotte";
var res = str.substr(str.indexOf(' ')+1);
在循环对象数组时,可以使用正则表达式替换不需要的字符。
for (var i = 0; i < arr.length; i++) {
arr[i].Opponent = arr[i].Opponent.replace(/@\s|vs\s/g, '');
}
这是一个jsbin
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.