Javascript从唯一的var中删除值

Javascript从唯一的var中删除值,javascript,arrays,Javascript,Arrays,我发现了一些其他类似的问题,我试图从中解决,但我的问题似乎略有不同 我需要从基于其他输入的名称变量中删除选项/值,但是我在删除某些选项/值时遇到困难,因为它们实际上并不相同 <td>1</td><td>JIM</td><td>JOHNSON</td> <td>5</td><td>JIM</td><td>JOHNSON</td> 由于数据导入代码的方式(

我发现了一些其他类似的问题,我试图从中解决,但我的问题似乎略有不同

我需要从基于其他输入的名称变量中删除选项/值,但是我在删除某些选项/值时遇到困难,因为它们实际上并不相同

<td>1</td><td>JIM</td><td>JOHNSON</td>
<td>5</td><td>JIM</td><td>JOHNSON</td>
由于数据导入代码的方式(目前无法更改),因此可能会在getRandomName5()中的名称末尾添加额外的数字和文本。我需要代码将RED和RED1识别为相同的,并为输入_5找到一个与其他输入值不匹配的唯一值

如果getRandomName5()包含的值与其他值相等,但不相似,我可以让它工作

我可以将RED和RED1设置为一个值,以便它们看起来相等吗

谢谢你的帮助

编辑-我会尽量说得更具体一些

我正在填写一个HTML表格和几行代码,它们是“名称”。因此,由于代码/名称与数字一起列出,因此它们并不完全相同

<td>1</td><td>JIM</td><td>JOHNSON</td>
<td>5</td><td>JIM</td><td>JOHNSON</td>
例如: 我希望这两个随机选择的代码行被识别为相同的

<td>1</td><td>JIM</td><td>JOHNSON</td>
<td>5</td><td>JIM</td><td>JOHNSON</td>

1.
2.
3.
4.
5.






您要做的是遍历以前的输入,并从函数中的名称数组中删除任何包含值
(color)
(color)+“1”的内容。您也可以执行
!arrayItem.includes(颜色)
如果您希望更全面

函数getRandomName1(){ 变量名称=[“红色”、“绿色”、“蓝色”]; 返回名称[Math.floor(Math.random()*names.length)]; } 函数getRandomName2(){ 变量名称=[“黑色”、“白色”、“灰色”]; 返回名称[Math.floor(Math.random()*names.length)]; } 函数getRandomName3(){ 变量名称=[‘金’、‘银’、‘铜’]; 返回名称[Math.floor(Math.random()*names.length)]; } 函数getRandomName4(){ 变量名称=['洋红色','青色','黄色']; 返回名称[Math.floor(Math.random()*names.length)]; } 函数getRandomName5(){ 变量名称=['RED1','GREEN1','BLUE1','BLACK1','WHITE1','GRAY1','GOLD1','SILVER1','BRONZE1','MAGENTA1','CYAN1','YELLOW1']; //通过输入_1输入_4元素并获取其值 对于(变量i=1;i<5;i++){ 颜色=document.getElementById(“输入”+i).value //检查名称数组,如果它包含该颜色或带有 //1,然后将其从名称中删除 名称=名称.过滤器(c=>c!==color+“1”&&c!==color) } //现在移除颜色后,与上次输入相比,这是不安静的 返回名称[Math.floor(Math.random()*names.length)]; } 函数myFunction1(){ if(document.getElementById(“input_A”).value==“1”){ document.getElementById(“输入_1”).value=(getRandomName1()); document.getElementById(“input_2”).value=(getRandomName2()); document.getElementById(“input_3”).value=(getRandomName3()); document.getElementById(“input_4”).value=(getRandomName4()); document.getElementById(“input_5”).value=(getRandomName5()); } }

1.
2.
3.
4.
5.






您的意思是,您不能更改
getRandomName5
的实际代码?那么你也不能改变函数中包含的局部变量;然后,您唯一的选择可能是继续调用该函数,直到您得到一个尚未包含在任何其他输入字段中的值。它的复杂程度取决于您的相似条件。您需要确定。可以使用
str.match()
我可以更改代码,我不能更改导入到代码中的名称@我不能创建我认为相似的名字列表吗?没有一个标准可以起作用,这只是我如何分组它们为什么要创建同一个函数5次?难道你不能创建一个
getRandomName
函数并将名称作为参数传递吗?谢谢。它看起来不错,我会尽力让它和我需要的配合起来。我本应该更直接地处理我的问题,但我尽量不发表太多的评论code@JimB没问题,如果这回答了您的问题,您可以通过单击问题左侧的绿色复选标记来接受它。虽然你最初的问题对我来说已经足够清楚了,而且这个问题没有太多的代码。我想我现在的问题是,前4种颜色上也有额外的数字,所以我想我需要使用类似于5的代码删除这些数字?@JimB你可以做
color=color.replace(/\d+$/g,”)
删除字符串末尾的所有额外数字,这样末尾的数字将被删除,它将只获得颜色名称。我无法使替换生效。这一切都结束了,过滤掉每个名字列表中不同/唯一的部分应该会起作用,因为它们会匹配