& # 39;未定义# 39;数组循环+字符的意外
'undefined' Unexpected on Array Loop + charAt
在此代码中,我逐行编写文本区域的每个单词,由空白分隔,但在最后一个单词undefined
出现,我不知道为什么
window.onload = function() {
var btn2 = document.getElementById("separar");
btn2.addEventListener("click", function() {
palavrasSeparadas();
}, false);
}
var c = new Array();
function palavrasSeparadas() {
var t2 = document.getElementById("texto").value;
for (var i = 0; i < t2.length; i++) {
//charAt retorna o caracter daquela posição
c[i] = t2.charAt(i);
}
var conteudo = "";
for (var j = 0; j <= c.length; j++) {
if (c[j] != ' ') {
conteudo += c[j];
} else {
conteudo += "<br>"
}
}
document.getElementById("msgS").innerHTML = conteudo;
}
<form id="form1" name="form1" method="post" action="">
<textarea id="texto" name="texto"></textarea>
<br>
<input type="button" id="separar" name="separar" value="Separação">
</form>
<br>
<div id="msgS"></div>
<br>
您的循环超出了一个值。在最后一次循环执行j <= c.length
时,当j = c.length时,您尝试在c.length
处访问c
。但是,由于数组索引从0开始,您的数组只有c.length-1
长。在循环中使用j < c.length
。
for (var j = 0; j < c.length; j++) {
if (c[j] != ' ') {
conteudo += c[j];
}else {
conteudo += "<br>"
}
}
在第二个for循环中,您使用了小于或等于,而不仅仅是小于。因此,您还尝试以c.length打印索引,这是未定义的。相反,您应该这样写:
for (var j = 0; j < c.length; j++) {
if (c[j] != ' ') {
conteudo += c[j];
}else {
conteudo += "<br>"
}
}
相关文章:
- 使用提取文本webpack插件时出现意外字符
- AJAX语法错误:JSON.parse:意外字符
- JavaScript意外的令牌<,有什么方法可以逃避错误(或至少跳过那些无用的字符)
- 代码点火器:搜索自动完成 JSON 解析意外字符
- 浏览器抛出错误:解析文件时出现意外字符 ' ' (1:0):图像.png
- JSON.parse:意外字符
- "JSON_PARSING_ERROR:位置0处的意外字符(d);当从GAS发送GCM请求时
- SyntaxError:JSON.parse:登录脚本中出现意外字符
- JSON和意外字符
- Uglify JS错误:意外字符''连接时,请缩小select2
- JSON.parse:Javascript中出现意外的字符错误
- 奇怪的javascript行为-JSON.parse:意外字符
- Vimeo Slider脚本-SyntaxError:JSON.parse:意外字符
- asp.net Jquery.ajax保留JSON.分析意外字符错误
- JSON解析意外的非空白字符
- ExecJS::P rogramError: 意外字符 '#'
- 语法错误:JSON.parse:意外字符
- (仅在IE中)SCRIPT65535:对方法或属性访问的意外调用.主.js,第 152 行字符 28
- 错误:“JSON.parse:JSON 数据第 1 行第 1 列的意外字符”,当包含其他 php 文件时
- JSON 数据后出现意外的非空格字符