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

数组去重函数(见下图及代码),第一次循环时i=0,最里面的for循环中var j = i+1,j为什么不等于1,反而等于undefined?导致only([5])的结果是[]
PS:我的理解是尽管j<len条件不成立,j已经被赋值为1了,哪里出了问题?
(1)调试截图:

https://img.mukewang.com/5bc847690001c3bb06180362.jpg

(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>


阿波罗的战车
浏览 586回答 1
1回答

MM们

j肯定是undefinedj是for(var j = i+1;j<len;j++){}循环的局部变量而if(j){}判断不在for(var j=i+1;j<len;j++){}循环内JavaScript肯定判断j变量未定义,则肯定undefined
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript