【发布时间】:2014-02-27 13:52:11
【问题描述】:
我正在尝试编写一些代码,将单个电子邮件字符串放入电子邮件数组中。在有逗号(,)的地方分割字符串。我遇到的最初问题是作为变量传递的字符串未被识别。我收到for 循环的条件部分的错误消息“无法读取未定义的属性'长度'”。奇怪,因为我肯定是在传递一个字符串或试图传递一个字符串?
当我将一个字符串直接传递给函数参数时(为了避免上述测试其余函数的问题)只有前 2 个电子邮件地址出现,最终的电子邮件地址丢失了?
我正在学习编程,这是一个练习,因此我试图避免使用split() 方法或正则表达式。傻我知道。
非常感谢您在克服这两个问题方面的任何帮助。
function separateCommaValues(text)
{
var input = [];
var val = '';
for(var i = 0; i < text.length; i++) {
if(text[i] == ',') {
if(val.length == 0){
continue;
}
input.push(val);
val = '';
} else {
val += text[i];
}
}
document.write( input );
}
separateCommaValues(str);
var str = "john@google.com, jake@yahoo.com, andrew@hotmail.com";
【问题讨论】:
-
您应该在使用它之前定义变量。将调用前的
var str = "...";行移至separateCommaValues(str); -
str不应该在使用前初始化吗?
-
如果这不是学术练习,我建议使用 String.split:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
我注意到的第一件事是,在将文本推送到数组之前,您的函数似乎需要一个逗号。由于第三个邮箱地址后面没有逗号,所以不会被推送。
-
将字符串更改为数组的方法很长。
标签: javascript arrays string iteration