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

如何实现跳过

如何实现跳过

撒科打诨 2019-03-15 18:25:20
Array.prototype.distinct = function(){   var arr = this,     result = [],     i,     j,     len = arr.length;   for(i = 0; i < len; i++){    for(j = i + 1; j < len; j++){     if(arr[i] === arr[j]){       j = ++i; // 这里为什么就可以实行跳过      }     }     result.push(arr[i]);// i 为什么不是 0 1 2 3 4     }   console.log(result);   return result;   }  var arra = [1,2,3,1,1];// 外层 到最后一个数组项 i=4 内部j=5 如何运行   arra.distinct();
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

// i 为什么不是 0 1 2 3 4 
++i 就是 i=i+1然后返回i本身;
// 外层 到最后一个数组项 i=4 内部j=5 如何运行
j=5不符合循环条件j<len,不执行循环体。

查看完整回答
反对 回复 2019-03-15
?
莫回无

TA贡献1865条经验 获得超7个赞

其实你可以锊一下程序怎么走的

主要是 j = ++i;

第一次循环后,内循环结束时 if条件满足 ++i了  此时i=1,   外循环有一个自增i++ 此时第一次外循环后i=2第二次循环i的起始值为2,内循环时没有满足if条件,内循环结束时 i=2 外循环结束后i=3....


查看完整回答
反对 回复 2019-03-15
  • 2 回答
  • 0 关注
  • 620 浏览
慕课专栏
更多

添加回答

举报

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