为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

茅侃侃 2018-12-06 12:15:08
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 不是出不来第二个循环吗? 我进入了个思维死胡同出不来了,谢谢帮忙解惑!
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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

查看完整回答
反对 回复 2018-12-24
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

题主你好,

我想首先你要理解,i++和++i的区别。

i++是先赋值再自增。

++i是先自增在赋值。

那么 var j = i++,就可以分解为var j = i;i=i+1来理解;

var j = ++i,就是i=i+1;var j = i.

查看完整回答
反对 回复 2018-12-24
  • 2 回答
  • 0 关注
  • 440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信