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

标签 javascript arrays variables split

我有一个 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] 将不存在,条件将失败。

关于javascript - 如何根据条件替换 JavaScript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439228/

相关文章:

javascript - Discord.js//过滤消息startsWith并解决bulkDelete的DiscordAPIError

javascript - 异步/等待未分配的对象

c - 数组已填充最后一个元素

php - 将值插入 echo 语句内的文本框

c# - 从代码后面带参数调用 javascript 函数

Javascript自动函数执行

arrays - 为什么以及何时在 Swift 中对数组使用惰性?

javascript - 如何检查数组是否在javascript中增加?

Bash - stdir 单词到文件

c - 评估包含未初始化指针的条件 - IN,但它会崩溃吗?