Javascript:将字符串变量解析为两个变量,一个作为字符串,一个作为整数

时间:2013-10-01 14:55:01

标签: javascript

我有一个输入,我可以提交文字:name,score

我正在解析结果,以便将名称作为字符串存储在变量中,并将分数作为整数存储在变量中。这看起来很笨重。有没有办法解析文本而不需要五个单独的变量?

// capture submitted string result
var namescore = document.getElementById('namescore').value;

// split it at the comma
var parts = namescore.split(", ");

// make sure first part is a string
var pname = parts [0].toString();

// convert score string to integer
var scoreString = parts [1];
var score = parseInt(scoreString, 10);

4 个答案:

答案 0 :(得分:5)

这里有两个变量:

var parts = document.getElementById('namescore').value.split(", ");
var result = {
    name: parts[0],
    score: parseInt(parts[1], 10)
}

您可以像这样访问分数:

result.score

名字:

result.name

答案 1 :(得分:2)

即使在您的代码中也可以轻松删除两个:

// split it at the comma
var parts = document.getElementById('namescore').value.split(", ");

// make sure first part is a string
var pname = parts[0].toString();

// convert score string to integer
var score = parseInt(parts[1], 10);

或者你真的不需要pname和得分,如果你只使用它们一次,那么你可以使用等式右边的那些。那么你只剩下1个变量:parts

答案 2 :(得分:1)

无论如何,您不需要以这种方式为每个操作引入变量:

// capture submitted string result
var parts = document.getElementById('namescore').split(", ");

// make sure first part is a string
var pname = parts[0].toString();

// convert score string to integer
var score = parseInt(parts[1], 10);

上面的代码与您的代码完全相同。您可以跳过.toString调用:拆分字符串的结果将始终是字符串数组。

答案 3 :(得分:0)

有什么理由不将它们作为零件数组的成员?

// capture submitted string result
var namescore = document.getElementById('namescore').value;

// split it at the comma
var parts = namescore.split(", ");


parts[0] = parts[0].toString();
parts[1] = parseInt( parts[1], 10 );