如何根据条件替换 javascript 变量?

How to replace a javascript variable on conditional?

我在 HTML 中有一个名称下拉菜单:

<select id="names" name="nam">
<option>Generic Lastname, Firstname Middle</option>
<option>Doe Jr., Jim</option>
<option>Smith, Christopher Sam=Chris</option>
<option>Wilson, Sue Ann</option>
</select>

<input type="checkbox" id="firstname" value="" checked="checked">

我使用脚本将这些名称解析为以逗号和空格分隔的变量。姓氏,名字不包括中间名。

我正在尝试添加昵称。仅当存在昵称时,名字变量才被昵称替换,但如果不存在昵称变量,则保持不变。

例如,在上面的代码中,Christopher 将替换为 Chris,但其他所有选项将保留其各自的名字。我不知道如何交换变量。

另外,我需要在每个选项中加上“=”吗?或者,如果不存在“=”,split 函数能否将变量读取为 null?我还不熟悉条件。请耐心等待我。我尝试将 IF 放入代码中,但没有成功。

代码如下:

var nam=document.forms[0].nam.value;
var half_array=nam.split(",");
var first_array=half_array[1].split(" ");
document.getElementById('firstname').value = first_array[1];

我可能会采取完全不同的方法来解决这个问题,但我也不太确定您是如何构建数据的。

中间名(如果存在)将是 first_array 中的第二个元素,因此您可以先检查它。

var nickname,
    nameToDisplay = first_array[1];

if (first_array[2]) {
    // split on `=` if we have a middle name
    nickname = first_array[2].split("=");
}

如果 = 存在,则此人的昵称将是 nickname 中的第一个元素。

if (nickname[1]) {
    nameToDisplay = nickname[1];
}

如果 = 不存在,则 nickname[1] 将不存在,条件将失败。