在字符串-Javascript中摆脱无关字符

时间:2015-12-29 22:46:25

标签: javascript json string

我正在使用Javascript从API加载有关NBA游戏的数据,我想操纵它但是遇到了麻烦。每个游戏都是自己独立的对象,数据的返回方式如下:

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

根据球队是回家还是离开,在该特定比赛的对手名称前面有“@”或“vs”。我想摆脱这个,所以“对手”键只有“夏洛特”作为上述例子中的值。

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

在空间之前摆脱任何角色,但是如果有一个团队名称,其中有一个空格,如“纽约”或“洛杉矶”,这会破坏数据

5 个答案:

答案 0 :(得分:0)

这将获取字符串,并从第一个空格的索引处开始创建一个新的子字符串。例如:

@ New York =在@之后开始的新字符串。 - >纽约

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

答案 1 :(得分: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) );

答案 2 :(得分:0)

gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").slice(1).join(" "));
  1. 基于空格分割的角色
  2. 切掉数组中的第一项
  3. 将数组的内容与空格一起加入。

答案 3 :(得分:0)

您需要substr()方法:

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

结果:Charlotte

除非在“vs”之后还有空格,否则不明确。

然后你可以使用:

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

答案 4 :(得分:0)

您可以使用正则表达式在循环对象数组时替换不需要的字符。

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

这里是jsbin