实在不明白错在哪里 求指教 <script> var str = "java-arrke-aboslue-all"; var arr =new Array([]); for(i=0; i<=str.length; i++) { var a = str.indexOf("a",i); arr.push(a); } console.log(arr);</script>
3 回答
已采纳
nickylau82
TA贡献128条经验 获得超67个赞
<script> "use strict" var test = function(){ var str = "java-arrke-aboslue-all", ret = new Array(), i=0, length = str.length; for(;i<length;i++){ var temp = str.indexOf("a",i); if(temp>0){ ret.push(temp); i = temp; } } console.log(ret); }; test(); </script>
qq_二冬_0
TA贡献8条经验 获得超7个赞
我觉得你出现的错误是不是你保存的数组里会出现很多重复的值?这是因为虽然你起始的查找位置改变了,比如你从位置0开始查找,第一个a出现位置1,然后你又从位置1查找a,这个时候他返回的仍然是a基于整个字符串的位置,而不是a基于你索引开始位置(也就是你代码里的i)的位置。所以会有很多重复值,不知道你说的错误是不是这个
添加回答
举报
0/150
提交
取消