繁体   English   中英

打印后从javascript数组中删除逗号

[英]Removing commas from javascript array after printing

因此,现在每次在链接到myFunction函数的输入字段上按Submit时,都会得到一个','分隔符。 我想删除','分隔符。 因为当我现在提交名称时,每次我按提交时,它只会打印一个逗号并添加另一个逗号,而无需填写输入字段。

  var namenOSM = []; var clubOSM = ["Wolves", "Derby", "Cardiff", "Aston villa", "Bristol City", "Sheffield utd", "Fulham", "Middlesbrough", "Brentford", "Leeds", "Preston", "Ibswich", "Norwich", "Nottingham", "Millwall", "QPR", "Sheffield Wed", "Redding", "Barnsley", "Bolton", "Hull city", "Sunderland", "Birmingham", "Burton"]; function myFunction() { var newArray = document.getElementById("naam").value; document.getElementById("naam").value = ""; namenOSM.push(newArray); var clubRandom = Math.floor(Math.random() * clubOSM.length); var node = document.createElement("LI"); var textnode = document.createTextNode(namenOSM + ' = ' + clubOSM[clubRandom]); node.appendChild(textnode); document.getElementById("namen").appendChild(node); } 
  Player:<br> <input id="naam" type="text" name="firstname" value=""> <br> <br> <input type="button" value="Submit" onclick="myFunction()"> <div id="namen"> </div> 

我知道这些俱乐部都被硬编码到数组中,但这对我来说是一个学习JavaScript的快速项目。

谢谢!

问题是您要输出整个数组而不是最后一个索引。

var textnode = document.createTextNode(namenOSM + ' = ' + clubOSM[clubRandom]);

应该是

var textnode = document.createTextNode(namenOSM[namenOSM.length-1] + ' = ' + clubOSM[clubRandom]);

要么

var textnode = document.createTextNode(newArray + ' = ' + clubOSM[clubRandom]);

您应该为firstname输入应用空的输入控件,并注意使用名字方便,因为newArray不是数组。

  var namenOSM = []; var clubOSM = ["Wolves", "Derby", "Cardiff", "Aston villa", "Bristol City", "Sheffield utd", "Fulham", "Middlesbrough", "Brentford", "Leeds", "Preston", "Ibswich", "Norwich", "Nottingham", "Millwall", "QPR", "Sheffield Wed", "Redding", "Barnsley", "Bolton", "Hull city", "Sunderland", "Birmingham", "Burton"]; function myFunction() { var textValue = document.getElementById("naam").value; if(textValue == "") return; document.getElementById("naam").value = ""; namenOSM.push(textValue); var clubRandom = Math.floor(Math.random() * clubOSM.length); var node = document.createElement("LI"); var textnode = document.createTextNode(namenOSM + ' = ' + clubOSM[clubRandom]); node.appendChild(textnode); document.getElementById("namen").appendChild(node); } 
 Player:<br> <input id="naam" type="text" name="firstname" value=""> <br> <br> <input type="button" value="Submit" onclick="myFunction()"> <div id="namen"> </div> 

这是如果您要保持输出完全相同,只是没有逗号,否则请看@epascarello答案

之所以会使用,是因为您要打印出对象数组,而不是数组的单个元素。 为此,您需要一个for循环

https://www.w3schools.com/js/js_loop_for.asp

我添加了它,因此它将数组中的所有元素添加到字符串中,然后显示该字符串。

for(var i = 0; i < namenOSM.length; i++){
       teamString += namenOSM[i] + " ";
}

https://codepen.io/anon/pen/LevJBR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM