我有一个输入,我可以提交文字: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);
答案 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 );