javascript的for in 问题 急帮忙,谢谢
for(variinsou){if(sou[i].indexOf(g)>=0)s+=sou[i];elses+='';}document.get..........我想搜...
for(var i in sou)
{
if(sou[i].indexOf(g)>=0)
s+=sou[i];
else
s+='';
}
document.get..........
我想搜索数组sou中所有匹配项,但是只要存在匹配时整个数组都输出了,就是假设我搜索“你妹”,数组sou[2]中包含"你妹",但是却把sou[0],sou[1]......sou[n]全都输出了,为什么if语句失效。这个sou数组是用split截取的。
还用了for 和while,情况一样,求帮忙解决,谢谢。 展开
{
if(sou[i].indexOf(g)>=0)
s+=sou[i];
else
s+='';
}
document.get..........
我想搜索数组sou中所有匹配项,但是只要存在匹配时整个数组都输出了,就是假设我搜索“你妹”,数组sou[2]中包含"你妹",但是却把sou[0],sou[1]......sou[n]全都输出了,为什么if语句失效。这个sou数组是用split截取的。
还用了for 和while,情况一样,求帮忙解决,谢谢。 展开
1个回答
展开全部
可能是下面两个原因之一:
1、sou数组没有正确分割。比方说字符串中是全角的逗号,但你却按半角的逗号去分割,这样就导致sou数组只有一个元素,即sou[0],它的值就是整个字符串,这样,只要这个字符串含有要搜索的词,输出的时候就会把原来的整个字符串输出了;
2、没有正确输出。比如输出的时候本来是输出变量s的,但却错误地输出了sou,这样也会造成整个数组输出的结果。
补充说明:你的代码没错,所以出错的地方应该是在其他地方
1、sou数组没有正确分割。比方说字符串中是全角的逗号,但你却按半角的逗号去分割,这样就导致sou数组只有一个元素,即sou[0],它的值就是整个字符串,这样,只要这个字符串含有要搜索的词,输出的时候就会把原来的整个字符串输出了;
2、没有正确输出。比如输出的时候本来是输出变量s的,但却错误地输出了sou,这样也会造成整个数组输出的结果。
补充说明:你的代码没错,所以出错的地方应该是在其他地方
追问
谢谢你,只有你回答我。现在问题解决了,不过我放弃了循环,分割字符串用的""没有标点,最后只能用函数调用自己这种循环方式(结束条件为一个全局变量),不过成功了。到现在还是不明白for循环出错的原因,甚至Enumerator枚举对象也是一样出错,很感谢你的回答,我会采纳的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询