函数,该函数由作为参数输入的单词组成数组
Function that makes an array out of words entered as an argument
function makeArray(text){
var array = [];
var word = null;
for(var i = 0; i<text.length; i++){
if (word == null) {
word = "";
if(text[i] != "," && text[i] != " " && text[i] != "." && text[i] != " "){
word += text[i];
}
else{
array.push(word);
word = null;
}
}
return array;
}
var array = makeArray("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc varius urna sed pede. Suspendisse sit amet lacus. Vivamus consectetuer fringilla ligula. Nunc metus lorem, pretium adipiscing, sollicitudin nec, ultrices quis, nulla. Phasellus nec nulla a eros adipiscing ultrices. Nulla fermentum lectus. Pellentesque ac risus eu massa auctor bibendum. Cras vulputate, nisi eget gravida condimentum, nisl justo tincidunt magna, rutrum imperdiet dui justo vel risus. Donec sit amet pede. Etiam facilisis mauris vitae risus. Ut a neque. Suspendisse augue est, elementum nec, lobortis vel, pulvinar vitae, sapien. Curabitur venenatis enim sit amet sapien. Mauris fermentum interdum eros. Mauris feugiat adipiscing nisl. Donec non nunc. Donec ante enim, eg."
for(var i = 0; i<array.length;i++){
document.write(i+ ". "+array[i]+"<br />");
}
我正在尝试构建一个程序,它可以占用一段很长的文本,并告诉你一个单词在整个文本中是否只出现一次。正如你所看到的,我还没有编写其余的代码,但当我运行它来测试它是否能成功返回数组中的每个项目时,与此代码相比,web浏览器只显示一个空白屏幕
function makeArray(text){
var array = [];
var word = "";
for(var i = 0; i<text.length; i++){
if(text[i] != "," && text[i] != " "&& text[i] != "." && text[i] != " "){
word += text[i];
}
else{
array.push(word);
word = "";
}
}
return array;
}
for(var i = 0; i<array.length;i++){
document.write(i+ ". "+array[i]+"<br />");
}
它可以正常工作,但如果出现诸如"."(句点+空格(之类的字符序列,它将向数组中添加一个值为""
的项,因为是word = "";
。我试图通过使用null
类型来消除这种情况,因为w3schools.com说"可以通过将值设置为null来清空变量",但当我使用null
类型时,会导致错误,为什么会这样?
- 创建一个名为"word"(''(的空字符串
- 一次添加一个字母("L"、"o"、"or"、"ore"、"orem"(
- 单词结束,所以推到数组('Lorem'(
- 将单词重置为null(null(
- 在其中添加字母,一次添加一个("ulli"、"ullip"、"nulips"、"Nulipsu"、"anulipsum"(
您要做的是重新设置为空字符串,您不希望为null。
如果我正确理解了你的问题,你想从字符串中创建一个单词数组。一个简单的方法是使用String.split
方法,并将RegExp
作为split
的参数。类似这样的东西:
var array = text.split(/['W]+/);
上面的split
通过在各处拆分text
来创建一个新数组,其中包含的RegExp与text
中的一个或多个非字母数字(或下划线(的顺序字符相遇。
空白屏幕显示的内容,是因为您在解析页面后使用document.write()
。这样做将创建一个新文档,并且当前文档的所有内容都将丢失。相反,在页面上创建一个带有id
的元素,并执行以下操作:
document.getElementById('id_of_an_element').innerHTML = array.join('<br />');
join()
是一个与split
"相反"的方法,它从数组中创建一个字符串。
jsFddle的现场演示。
相关文章:
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 使用html表单中的参数调用JavaScript函数
- Javascript onclick函数会立即调用(而不是在单击时调用)
- 如何在.js函数中检索来自其他模板的表单的目标值
- Javascript在处理函数时防止单击
- JavaScript-onClick将按钮ID或单击按钮的文本传递给函数
- 使用单击函数中的jQuery切换元素
- 调用函数单击选择标签中的选项
- jQuery 函数 - 单击两次返回一个值
- 模式弹出窗口无法正常工作,它多次调用函数 - 单击事件处理程序运行多次
- 在 JSON 解析中添加函数单击
- 调用多个函数单击“反应JS”
- 如何在使用javascript函数单击网格时设置文本框值
- jQuery 闭包:如何从函数单击中获取值
- 如何通过使用onClick()函数单击按钮来填充Javascript中的表
- 如何在asp中调用Javascript函数:单选按钮
- 我如何添加多个值从一个选择列表框到另一个列表框上使用javascript函数单击按钮
- 忽略 Jquery 函数单引号
- 手动触发函数单击事件对象