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,情况一样,求帮忙解决,谢谢。
展开
 我来答
网海1书生
科技发烧友

推荐于2016-01-10 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
可能是下面两个原因之一:
1、sou数组没有正确分割。比方说字符串中是全角的逗号,但你却按半角的逗号去分割,这样就导致sou数组只有一个元素,即sou[0],它的值就是整个字符串,这样,只要这个字符串含有要搜索的词,输出的时候就会把原来的整个字符串输出了;
2、没有正确输出。比如输出的时候本来是输出变量s的,但却错误地输出了sou,这样也会造成整个数组输出的结果。

补充说明:你的代码没错,所以出错的地方应该是在其他地方
追问
谢谢你,只有你回答我。现在问题解决了,不过我放弃了循环,分割字符串用的""没有标点,最后只能用函数调用自己这种循环方式(结束条件为一个全局变量),不过成功了。到现在还是不明白for循环出错的原因,甚至Enumerator枚举对象也是一样出错,很感谢你的回答,我会采纳的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式