+ 5
Can someone explain this to me plz? Thanks in advance.
var str = 'I love JavaScript!', j = 0, res = []; while(( j = str.indexOf('',j+1))>0){ res.push( j+1);} how many elements will be pushed into res?
2 Answers
+ 5
You will have a error. A infinite loop will occur as ( j = str.indexOf('',j+1)) will always be greater than 0. If you have something like this:
var str = 'I love JavaScript!', j = 0, res = [];
while(( j = str.indexOf('',j+1))<str.length){
res.push(j+1);
}
you would get 17 pushes, but the array will start at 2 and go to 18, as there are two j+1 in the code. If you did the following code instead you would still get 17 pushes with its elements being 1 through 17 instead:
while(( j = str.indexOf('',j+1))<str.length){
res.push(j);
}
Look here for more details:
https://code.sololearn.com/WfBVYERG3FDh
+ 4
@Bryan Daniel Rosen
thank you so much that was satisfying.