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

数组去重函数中的变量j怎么是undefined

数组去重函数中的变量j怎么是undefined

阿波罗的战车 2018-09-11 13:38:51
数组去重函数(见下图及代码),第一次循环时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


查看完整回答
反对 回复 2018-10-18
  • 1 回答
  • 0 关注
  • 583 浏览
慕课专栏
更多

添加回答

举报

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