我正在使用以下代码从第一个+中间名中拆分姓氏,并将它们放在三个单独的字段中。一个持有姓氏,一个持有第一个名字,一个持有所有这些,但重新安排为姓氏,名字
function switchName(ele){
var splitName = ele.value.split(" ");
var surname = splitName[splitName.length-1]; //The last one
var firstnames
for (var i=0; i < splitName.length-1; i++){
firstnames += splitName[i] + " "
}
document.getElementById("hdnSNFNS").value = surname + ", " + firstnames;
document.getElementById("hdnEmployeeSurname").value = surname;
document.getElementById("hdnEmployeeFirst").value = firstnames;
它按原样工作,但我得到了firstnames的输出
Stone,undefinedJoss Helen
我已经玩了好几年了,但无法找到正确的解决方案。
答案 0 :(得分:2)
你错过了第4行的;
,你应该将firstnames
初始化为空字符串。
var firstnames = "";
。
现在,循环的第一次迭代将第一个名称连接到未初始化的变量,而undefined
来自的位置。通过初始化,您将与“无”连接,它将产生预期的结果。
答案 1 :(得分:1)
function switchName(ele){
var splitName = ele.value.split(" ");
var surname = splitName[splitName.length-1]; //The last one
var firstnames = ""; // <- forgot to initialize to an empty string
for (var i=0; i < splitName.length-1; i++){
firstnames += splitName[i] + " "
}
}