数组去重函数(见下图及代码),第一次循环时i=0,最里面的for循环中var j = i+1,j为什么不等于1,反而等于undefined?导致only([5])的结果是[]PS:我的理解是尽管j<len条件不成立,j已经被赋值为1了,哪里出了问题?(1)调试截图:(2)代码:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>dd</title></head><body><script type="text/javascript"> function only(arr){ var newArr = [], len = arr.length; for(var i = 0;i<len-1;i++){ for(var j = i+1;j<len;j++){ if(arr[i]===arr[j]){ j = false; break; } } if(j){ newArr.push(arr[i]); } } return newArr; } console.log(only([5]))</script></body></html>
1 回答
MM们
TA贡献1886条经验 获得超2个赞
j肯定是undefined
j是for(var j = i+1;j<len;j++){}循环的局部变量
而if(j){}判断不在for(var j=i+1;j<len;j++){}循环内
JavaScript肯定判断j变量未定义,则肯定undefined
添加回答
举报
0/150
提交
取消