关于js的数组去重算法疑问

1 function unique(array) {
2     var r = [];
3     for (var i = 0, l = array.length; i < l; i++) {
4         for (var j = i + 1; j < l; j++) 
5             if (array[i] === array[j])   j = ++i;
6         r.push(array[i]);
7     }
8     return r;
9 }

这个算法中的  j = ++i  ;是 i =i+1 然后 j = i 吗?那 j 就是变成 j = i+1 不是出不来第二个循环吗?

我进入了个思维死胡同出不来了,谢谢帮忙解惑!

茅侃侃
浏览 441回答 2
2回答

蝴蝶刀刀

 第二层for循环中有j++的,所以下次循环时j还是比i大1

胡说叔叔

题主你好, 我想首先你要理解,i++和++i的区别。 i++是先赋值再自增。 ++i是先自增在赋值。 那么 var j = i++,就可以分解为var j = i;i=i+1来理解; var j = ++i,就是i=i+1;var j = i.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript