2011-02-17 73 views
0

下面是一个用JavaScript编写的脚本,目的是从输入中取出一个句子,并将其分解为消除空白字的数组。根据单词的大小忽略其中剩余的字母,每个单词应该进一步分成2或3个字母。javascript:无法找出错误!

如果所述单词大于1且小于5或大于6,则它应该是四个字母的单词。所有单词的输出应该在中间加上一个下划线。

下面是不工作的代码,我无法弄清楚。请指导我使其工作

document.getElementById("cliename").onchange = function(event){ 
var list_cname = new Array(); 
var cname = document.submit.cliename.value; 
list_cname = cname.split(" "); 
var list_len = list_cname.length; 
var valu; 
var final_valu; 
var i=0; 

for (i=0;i<=list_len;i++){ 
     var sub_list = list_cname[i]; 
     var sub_list_len = sub_list.length; 
     if(sub_list_len>=1 && sub_list_len<=5){ 
      sub_list_len=sub_list_len-1; 
      } 
      else if(sub_list_len>=6){ 
        sub_list_len=4; 
       } 
     var list_val = list_cname[i].substring(0,sub_list_len); 
     valu = list_val; 
     final_valu = valu + "_" + final_valu; 
    } 
    document.write("list -" + cname + ", len - " + list_len + ", final " + final_valu); 
} 

我得到的错误是“SUB_LIST”是UNDEFINED。

+7

什么不起作用?在问题中添加错误,我们无法在此处阅读... – 2011-02-17 10:15:39

+0

错误是“SUB_LIST”未定义。 – 2011-02-17 10:34:18

回答

2

对于初学者来说,改变

for (i=0;i<=list_len;i++) 

for (i=0;i<list_len;i++) 

list_cname[i]将索引超出范围。

+0

谢谢你是通过去掉“=”这个错误就解决了坦克一吨的问题。 – 2011-02-17 10:32:56

1

从粗看你的代码,在不知道的错误,等等。

你参考:sub_list_len,但是这不是一个长度。

你需要做的是这样的:

sub_list_len.length

var sub_list_len = sub_list.length

+0

它被意外删除。对不起,这是删除检查的目的,如果是这样,我已经取代了相同的错误,我得到的是“SUB_LIST”是UNDEFINED。 – 2011-02-17 10:33:50

+0

非常感谢,感谢每一位帮助我解决这个问题的人。谢谢各位 – 2012-06-01 09:27:09

1

我已对您的代码进行了一些更改,并在jsFiddle上举了一个例子。还粘贴了以下

document.getElementById("cliename").onchange = function(event){ 
    var list_cname = []; 
    var cname = this.value; 
    list_cname = cname.split(" "); 
    var list_len = list_cname.length; 
    var valu = ""; 
    var final_valu = ""; 
    var i=0; 
    for (i=0;i<=(list_len-1);i++) 
    { 
     var sub_list = list_cname[i]; 
     var sub_list_len = sub_list.length; 

     if(sub_list_len > 1 && sub_list_len <= 5) 
     { 
      sub_list_len = sub_list_len-1; 
     } 
     else if(sub_list_len>=6) 
     { 
      sub_list_len = 4; 
     } 

     var list_val = list_cname[i].substring(0,sub_list_len); 
     valu = list_val; 
     final_valu = valu + "_" + final_valu; 
    } 
    document.write("list - \"" + cname + "\", len - " + list_len + ", final " + final_valu); 
}; 
1

请参阅this

请告诉我,如果它仍然没有解决您的问题。

也纠正我,如果我错了。