求给定字符串中同一个元素出现的位置并赋值给数组显示

实在不明白错在哪里 求指教 

<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>


坐等扮猪吃老虎3363200
浏览 1541回答 3
3回答

nickylau82

<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

我觉得你出现的错误是不是你保存的数组里会出现很多重复的值?这是因为虽然你起始的查找位置改变了,比如你从位置0开始查找,第一个a出现位置1,然后你又从位置1查找a,这个时候他返回的仍然是a基于整个字符串的位置,而不是a基于你索引开始位置(也就是你代码里的i)的位置。所以会有很多重复值,不知道你说的错误是不是这个

nickylau82

话说这是哪门课的练习题么?怎么突然好多人在问这道题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript