使用JavaScript解析textarea时没有输出

使用JavaScript解析textarea时没有输出,javascript,html,parsing,textarea,Javascript,Html,Parsing,Textarea,我有一个文本框,其中会粘贴一大块文本 然后我将文本解析成一个数组,删除空白。我需要从某些数组元素中提取数据,并将它们放入单独的变量中,以便生成更干净、格式化的输出 问题是注意似乎从数组传递到我的变量中。我对它进行了一些尝试,数组被正确填充,但是元素没有将字符串传递给变量 HTML: 这里发生了很多事情,很难理解你为什么这么做。 我的假设是,inputBox是一个文本区域或一个输入字段,用户可以在其中写入内容 好的,你在空白处拆分这个字符串,比如字符串 敏捷的棕色狐狸 将生成如下所示的数组: in

我有一个文本框,其中会粘贴一大块文本

然后我将文本解析成一个数组,删除空白。我需要从某些数组元素中提取数据,并将它们放入单独的变量中,以便生成更干净、格式化的输出

问题是注意似乎从数组传递到我的变量中。我对它进行了一些尝试,数组被正确填充,但是元素没有将字符串传递给变量

HTML:


这里发生了很多事情,很难理解你为什么这么做。 我的假设是,
inputBox
是一个文本区域或一个输入字段,用户可以在其中写入内容

好的,你在空白处拆分这个字符串,比如字符串

敏捷的棕色狐狸

将生成如下所示的数组:

inputArr = ["The", "quick", "brown", "fox"]
现在在for循环中,您正在迭代这个数组,从0开始递增,直到到达数组的末尾,这里没有什么奇怪的

但是在第一次迭代中,在你的if子句中,你试图用负值访问数组,记住
i
0
,这会导致一个未定义的值,同样在if子句的最后一部分,你试图访问
i+1
那么当
i
是最后一个值时会发生什么?!你猜到了另一个未定义的!稍后,循环将访问您已经准备好的旧值,老实说,我不知道您想要实现什么

你所有的if语句都是乱七八糟的,特别是如果你想在循环中执行它们的话。 我的猜测是,你认为你需要一个for循环,而事实上你不需要

您拥有的是一个包含文本区域中单词的数组,如果您知道所需内容的顺序,(您真的知道用户将在该文本区域中放置什么吗?),那么您可以直接访问单词,因为您知道数组中每个项目的索引。否则,将其改写为更简单的内容,始终保持简单

还有,为什么不在进行重构时查找

编辑


我认为现在的问题是数组中的第一个元素是空字符串,如果输入的开头有空格,就会出现这种情况。

您有任何特定的编程问题吗?我们不应该只做代码提升!什么不起作用?如果您创建了一个脚本,并在JavaScript之外包含HTML,这将非常有用。是的,我有。很抱歉我的输出结果是“未定义”。显然,一个值永远不会被传递出去。@Mrow JSFIDLE是给我们的…@Mrow更改标题。现在它是一个非描述性的公牛。指定输入和预期输出。提出精确的问题。如果你问
有人能给我一些关于我的代码的建议吗?
并且你试图访问具有负索引的数组元素,没有人会帮你。唉。谢谢你直言不讳。我知道我的代码至少可以说是草率的,我一直在努力学习提高代码效率的方法,但我不确定如何解决这个问题。我知道我需要寻求帮助,但我害怕被视为没有花太多时间在这件事上。我已经花了好几个星期了!不管怎样,我真的很感谢你的回答和正确的方向。我会调查的+1如果我可以:(很抱歉,我并不是有意要说得刺耳或轻视,但要理解你想要完成的事情确实很难。我认为值得称赞的是,你一直在努力,并且总是记住,仅仅因为别人不理解你的代码,这并不意味着你是个白痴,或者说,这意味着世界上的每个程序员都是一个白痴白痴。因为理解别人用代码表达的想法本身就很难。同意。我认为这真的是我问题的一部分。我90%的学习都是在互联网上进行的,而代码是我无法理解的。我需要回到学校……从更简单的事情开始,完成项目是有价值的,但这听起来很简单你在这里尝试做的事情并没有帮助你学习。从别的事情开始,也许做你在这里尝试完成的事情的一个子集。然后,最后你可以把这些部分组合起来,也许有一个可以工作的产品。再次感谢你!重构正是我感兴趣的,我只是不知道该怎么称呼它。:)我喜欢写草率的代码,然后再检查一遍,提高效率,直到完美为止。我想我有强迫症。><哈哈,不管怎样,我真的很感激你今天的帖子。如果我有足够的声誉,我会给你+++:)
function generateOutputfvoc() {
    var inputArr = document.getElementById('inputBox').value.split(/[\s]/);
    document.getElementById('contactNameOutput').innerHTML = inputArr[0];
}
inputArr = ["The", "quick", "brown", "fox"]